martes, 10 de agosto de 2010

Curso Básico de Unix (III)

Tercera entrega del Curso Básico de Unix. Hoy vamos a ir entrando ya en materia y aunque este curso es de Unix, todo lo que veamos aquí es igual y puede practicarse en la mayoría de las distribuciones Linux, como por ejemplo, mi querido Debian.

Unix, para trabajar, debe estar organizado en torno a usuarios y grupos. De tal forma que para poder trabajar en una maquina con Unix debemos tener  un usuario reconocido por el sistema y asociado a una cuenta.

Cada usuario tiene un determinado directorio de trabajo, una shell asignada por defecto, una identificación, una serie de permisos con lo que puede o no hacer. Todo esto conforma su cuenta de usuario. Cada usuario tiene una cuenta, y cada cuenta pertenece a un usuario.

Bien, empecemos con lo práctico. ¿Cómo se guardan todos estos datos de las cuentas? Pues, a nivel global, en tres ficheros en los que se guarda información.

/etc/passwd

Donde se definen todos los usuarios. Cada línea de este fichero define a un usuario.

/etc/group

Aquí se definen los grupos que existen dentro del sistema.

/etc/shadow

Aquí se guardan encriptadas las contraseñas de usuario. Como medida de seguridad, solo el usuario ROOT puede verlo.

Dentro de /etc/passwd, cada usuario esta definido por una línea en el fichero, con la siguiente estructura:

nombreusuario:X:uid:gid:comentario:home:shell   

nombreusuario es, sencillamente,  el nombre que el usuario tiene dentro del sistema.
X indica que la contraseña esta encriptada y hay que buscarla en /etc/shadow .
uid es el número unico con el que se identifica al usuario dentro del sistema.
gid es el grupo principal del usuario (identificado por un número).
comentario sirve para que el root pueda poner notas sobre los usuarios.
home indica cual es el directorio raíz del usuario, donde iniciara la sesión.   
shell es el intérprete de comandos que usara por defecto el usuario.

Además de usuarios “personales” hay usuarios del propio sistema, y para evitar que alguien pueda logarse con ellos, como shell se les pone /sbin/nologin o no se pone nada, y así el usuario no puede logarse.

El fichero /etc/group define los grupos que hay en el sistema, y tiene una estructura similar a la anterior, en este caso:

grupo:X:gid:usuariosdelgrupo

grupo es el nombre que recibe el grupo
X solo se usa por compatibilidad. Antes aquí estaba la contraseña del grupo, pero ya no se usa.
gid es el identificador numérico del grupo, que es como realmente lo conoce el sistema
usuariosdelgrupo es la lista de todos los usuarios que pertenecen a este grupo

Y por ultimo, el fichero /etc/shadow, que como hemos dicho, solo puede ver el superusuario, tiene la siguiente estructura:

usuario:passwordencriptada:caracteristicas

Otro fichero que es interesante es el /etc/default/passwd, donde se guarda la configuración por defecto de los usuarios y las variables de entorno globales..

Para completar el entorno de trabajo del usuario se utilizan ficheros de configuración local dependientes de nuestra configuración (como pueden ser .login o .bash_profile) y variables de entorno generales, definidas en /etc/profiles.

Para ver cuales son las variables de entorno que tenemos creadas, basta con teclear en la terminal:

    set

Y modificarlas o crearlas, es tan facil como poner:

    VARIABLE=elvalorquequeramos

Teniendo en cuenta, que las variables, se suelen llamar siempre con nombres en mayusculas y que si el valor que les vamos a asignar es un literal, debemos ponerlos entre comillas.

Visualizar su valor, tampoco tiene misterios, tan solo tenemos que usar el comando echo:

    echo $NOMBREDELAVARIABLE

Esta es una pequeña lista de las variables mas comunes e importantes:

  • HOME
  • Contiene el nombre de mi directorio personal.
  • /home/carlos
  • PATH
  • Indica donde se debe buscar un programa para ejecutarlo. En Unix, no se busca en el directorio donde me encuentre, solo en los caminos que se hayan indicado aquí.
  • /bin:/sbin:/usr/sbin
  • IFS
  • Indica cuales son los caracteres separadores (tab, espacio, salto de linea…)
  • PS1
  • El prompt primario. Es decir, lo que pone el sistema para que escribamos comandos.
  • \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
  • PS2
  • Promt secundario. Es lo que pone cuando escribimos un comando tan largo que no cabe en una linea.
  • TERM
  • Tipo de terminal que estoy utilizando
  • Xterm,ansi
  • SHELL
  • Indica que tipo de shell es el que nos atiende
  • sh, csh, ksch, bash
  • HOSTNAME
  • Es el nombre de la maquina en la que estamos trabajando
  • Servidor,pcdecasa
  • MAILCHECK
  • Indica cada cuanto tiempo se chequea el correo interno (mail, no email)
  • 5

No hay comentarios:

Publicar un comentario

prekes sodui