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 "~".
Los administradores suelen establecer cuotas de disco en /home/
para evitar que unos pocos usuarios monopolicen el uso del disco.
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 ":":
El primer campo es el nombre del usuario.
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".
El tercer campo contiene el UID del usuario.
El cuarto campo contiene el GID del usuario.
El quinto campo o campo GECOS(General Electric Comprehensive Operating Supervisor) contiene información relativa al usuario como nombre, departamento, ...
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.
En el sexto campo está el directorio personal del usuario.
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.
Podemos deshabilitar temporalmente los accesos de un usuario al sistema añadiendo el carácter "*" como primer carácter del segundo campo.
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.
Cuando creamos un usuario se copian en su directorio todos los ficheros del directorio /etc/skel/
.
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.
Al igual que con los grupos se suelen reservar rangos para tipos de usuarios.
Podemos utilizar el flag -u para indicar el UID del usuario.
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]#
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.
Si quisieramos eliminar también su directorio personal tendrímos que haber utilizado el flag -r.
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.