09 septiembre 2008

Administrar Usurios en Linux

En Linux el usuario root es el único que tiene todos los permisos sobre el sistema. Por motivos de seguridad sólo se debe usar esta cuenta en contadas ocasiones. Por ejemplo para administrar otros usuarios. La información de usuarios y grupos queda escrita en los siguientes archivos:

/etc/passwd: registra el nombre y el directorio que usa cada usuario.
/etc/group: información sobre los grupos de usuarios.
/etc/shadow: contraseñas cifradas de los usuarios y sus configuraciones.


El archivo shadow, que antes era opcional, se incluye por defecto en las últimas distribuciones de Linux. Este archivo sólo es accesible para los usuarios con privilegios especiales de sistema. Como tenemos un archivo con nombres de usuario y otro con contraseñas encriptadas por separado, mejoramos la seguridad

Pondré un ejemplo:
Vamos a analizar cada uno de los archivos con los siguientes comandos:

sudo gedit /etc/passwd

En cada linea hay diversos campos separados por el carácter ":".He puesto unos números entre paréntesis para facilitar la comprensión, en realidad no existen. Cada número entre paréntesis representa un campo.

En una de las lineas sale:
(1)nombre:(2)x:(3)1000:(4)1000:(5)nombre,,,(6):/home/nombre:(7)/bin/bash

de esto sacamos los siguientes datos:

(1):login=nombre
(2):x significa que la contraseña esta cifrada (en el archivo shadow)
(3):user ID=1000 (puede ser cualquier otro. El 0 está reservado para la cuenta root).
(4):group ID=1000. En esta caso el usuario de ID 1000 pertenece al grupo de ID 1000. Un usuario puede pertenecer a varios grupos.
(5):comentarios sobre el usuario. En este caso coincide con el alias, se suele usar para poner el nombre completo del usuario o algún tipo de identificación personal
"nombre" es el nombre de usuario
(6): directorio del usuario.
(7): intérprete de comandos que puede usar el usuario.Normalmente es Bash. Se puede impedir su uso al usuario que queramos con "/bin/f alse".

sudo gedit /etc/group

siguiendo el ejemplo anterior "nombre" pertenece a varios grupos entre ellos al grupo de audio.

(1)audio:(2)x:(3)29:(4)pulse,nombre
(1): el grupo se llama audio
(2): su contraseña está encriptada ya que es una x
(3): group ID=29. El número que identifica al grupo "audio" es el 29
(4): el usuario "nombre" y el usuario "pulse" pertenecen al grupo de audio. Los usuarios de un grupo se separan por comas.

sudo gedit /etc/shadow

(1)nombre:(2)$1$4Ee0K3U2$B2WeoiW0C2wS1ahzRRL/I1:(3)13994:(4)0:(5)99999:(6)7:::

(1): Inicio de sesión (login)
(2): contraseña cifrada (por supuesto no he puesto la real, pero sería algo parecido)
(3): días que han pasado desde 1 de enero de 1970 hasta que se cambió la contraseña por última vez.
(4): días que han de pasar hasta que se tenga que cambiar la contraseña (el 0 significa que no estamos obligados a cambiarla)
(5): días que tienen que pasar hasta que la contraseña se tenga que cambiar.
(6): día que hay que avisar al usuario teniendo en cuenta los días que falten para que caduque la contraseña.
(7): días que pueden pasar después de que la contraseña caduque. Si pasa esta fecha se deshabilita la cuenta del usuario.
(8): días desde el 1 de enero de 1970 en que la cuenta se ha deshabilitado.
(9): campo reservado.


Los comandos más comunes para gestionar usuarios son:
  • useradd (ó adduser): añade un nuevo usuario.
  • usermod: sirve para cambiar los parámetros del usuario que queramos.
  • chfn: canvia el passwd o los comentarios de los usuarios.
  • chsh:cambia el intérprete de comandos de los usuarios.
  • userdel (ó deluser): elimina un usuario.
  • passwd: cambia la contraseña de un usuario, y cuando caduca.
  • groupadd (ó addgroup): añade grupos.
  • groupmod: permite modificar el mombre y GID de un grupo.
  • groupdel (ó delgroup): elimina un grupo. Sólo se puede eliminar si no hay ningún usuario que tenga este grupo como primario.
  • gpasswd: cambia la contraseña de un grupo.
Otros comandos útiles son:
  • whoami: para saber que usuario somos.
  • groups: para saber a que grupos pertenecemos.
  • id: nos muestra usuarios y grupos.
Para cambiar de usuario sin cerrar la sesión tenemos los comandos "login" y "su". Si queremos entrar en un grupo al que no pertenecemos (sabiendo la contraseña) usaremos el comando "newgrp". Si lo que queremos es ejecutar un comando que sólo se puede ejecutar perteneciendo a un grupo podemos usar "sg".

who: indica que usuarios estan conectados en un momento determinado.
w: indica que usuarios estan conectados en un momento determinado y que es lo que están haciendo.
write nombreDeUsuario: nos permite escribir un mensaje al usuario en cuestión.
talk: permite hace chat con el usuario especificado.
mesg: activa o desactiva la opción de recibir mensajes.

No hay comentarios:

Publicar un comentario