Gestión de usuarios

Zona de disco reservada a cada usuario

Cada usuario tiene un espacio en disco para tener sus datos. Este espacio es un directorio con su nombre que se encuentra en /home/.

Es posible encontrarlo también de las siguientes formas:

/home/b/pcm
/home/b/be/pcm
/home/futurama/pcm
/home/futurama/b/pcm
/home/futurama/b/be/pcm
...

Este tipo de estructuraciones se utilizan para una mejor organización de los usuarios y también para evitar exceder el número de entradas por directorio en aquellos sistemas con muchos usuarios.

El directorio personal suele estar almacenado en la variable de entorno $HOME y también se le conoce como "~".

Importante

Los administradores suelen establecer cuotas de disco en /home/ para evitar que unos pocos usuarios monopolicen el uso del disco.

El fichero /etc/passwd

Este fichero guarda la información relativa a los usuarios del sistema. Debido a problemas de seguridad ahora se utiliza también el fichero /etc/shadow.

Una entrada típica:

pcm:x:501:501:Bender:/home/pcm:/bin/bash

Este fichero contiene una línea por cada usuario del sistema y cada línea son varios campos separados por ":":

  1. El primer campo es el nombre del usuario.

  2. El segundo campo contenía el hashing de la contraseña del usuario. Es practica habitual el utilizar el shadowing de contraseñs y esta información se encuentra ahora en el fichero /etc/shadow razón por la cual este campo suele contener una "x".

  3. El tercer campo contiene el UID del usuario.

  4. El cuarto campo contiene el GID del usuario.

  5. El quinto campo o campo GECOS(General Electric Comprehensive Operating Supervisor) contiene información relativa al usuario como nombre, departamento, ...

    Sugerencia

    No conviene poner información sensible en este campo ya que es visible por todo el mundo que tenga acceso al sistema. Además si hay activados servicios como finger es fácil obtener esa información sin necesidad de tener cuenta en el sistema.

  6. En el sexto campo está el directorio personal del usuario.

  7. En el septimo campo se encuentra el comando que se ejecutará cuando haya un inicio de sesión por parte del usuario. Si se prentende que el usuario trabaje en la máquina se pone una shell.

Sugerencia

Podemos deshabilitar temporalmente los accesos de un usuario al sistema añadiendo el carácter "*" como primer carácter del segundo campo.

Añadiendo usuarios al sistema

Sólo el usuario root puede añdir usuarios al sistema. Aunque puede conceder privilegios a otros para hacerlo.

Se pueden utilizar dos comandos para ello:

  • useradd binario para la creación de usuarios.

  • adduser es un script en PERL para la creación de usuarios.

La forma típica para crear un usuario es:

[root@sal]# useradd -m -d /home/pcm -g pcm -G pcm,users,futurama -c "Bender" -s /bin/bash pcm
[root@sal]#
  • -m en caso de no existir el directorio del usuario lo crea.

  • -d /home/pcm indica cual va a ser el directorio del usuario.

  • -g pcm indica cual es el grupo principal del usuario.

  • -G pcm,users,futurama indica los grupos a los que perteneceráa el usuario.

  • -c "Bender" información del campo GECOS.

  • -s /bin/bash indica la shell que utilizará el usuario.

  • pcm nombre del usuario.

Importante

Cuando creamos un usuario se copian en su directorio todos los ficheros del directorio /etc/skel/.

Sugerencia

Es practica habitual crear un grupo con el mismo nombre que el usuario y utilizar este grupo como grupo primario del usuario. De esta forma se garantiza que sólo este el en ese grupo y pueda controlar mejor quien accede a sus ficheros.

Sugerencia

Al igual que con los grupos se suelen reservar rangos para tipos de usuarios.

Sugerencia

Podemos utilizar el flag -u para indicar el UID del usuario.

Importante

Una vez creado el usuario será necesario establecerle un password utilizando el comando passwd:

[root@sal]# passwd pcm
Enter new UNIX password: *******
Retype new UNIX password: *******
passwd: contraseña actualizada correctamente
[root@sal]# 

Eliminando usuarios del sistema

Sólo el usuario root puede eliminar usuarios del sistema. Aunque puede conceder privilegios a otros para hacerlo.

Para eliminar usuarios del sistema se utiliza el comando userdel:

[root@sal]# userdel pcm
[root@sal]# 

De esta forma eliminamos al usuario pcm del sistema sin borrar su directorio personal.

Sugerencia

Si quisieramos eliminar también su directorio personal tendrímos que haber utilizado el flag -r.

Importante

No podremos eliminar un usuario si este tiene abierta una sesión. En caso de necesidad podemos desabilitar sus accesos al sistema mediante el uso del carácter "*" y después matar todos sus procesos.

Modificando una cuenta existente en el sistema

Sugerencia

man usermod

El comando id

Este comando se utiliza para obtener información sobre el UID y el GID de los usuarios:

[root@sal]# id
id jose
uid=1000(jose) gid=1000(jose) grupos=1000(jose),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),1001(ftp)
[root@sal]#