Gestión de Usuarios
Ficheros de Configuración de Usuarios y Grupos
Comandos Útiles para la Gestión de Usuarios
Añadiendo Usuarios
Añadiendo Grupo
Vencimiento de Contraseña
Eliminando Usuarios
Poniendo Atributos al Usuario
Configuración de Grupos y Usuarios con la Herramienta Gráfica de Red Hat Mandrake 9
Gestión de usuarios
Lo usuarios de los sistemas GNU/Linux tienen asociada una cuenta con todos sus datos, además del espacio en disco para poder desarrollar sus archivos y directorios.
Hay diferentes tipos de cuentas asociadas a usuarios:
- La del administrador, el usuario root es el que posee más permisos en el sistema. Este solo debería ser utilizado para las tareas administrativas, ya que este puede causar daños o errores en el sistema. Así que se recomienda no utilizar dicha cuenta como un usuario normal.
- Cuentas de usuarios: cuentas para cualquier usuario de la maquina, con permisos restringidos al uso de los ficheros de su cuenta, además de utilizar los dispositivos que se le haya habilitado.
- Cuentas especiales de los servicios: lp, news, wheel, www-data,… cuentas que no son usadas por servicios internos del sistema. Algunos de los servicios también son usados bajo el nombre de root.
Un usuario se crea mediante la especificación de un nombre (o identificador de usuario), una palabra de paso (password) y un directorio personal asociado (la cuenta).
Ficheros de Configuración de Usuarios y Grupos
La información de los usuarios del sistema está incluida en los siguientes archivos:
/etc/passwd: Información sobre el usuario.
/etc/shadow: Información de contraseñas de usuarios.
/etc/group: Información de grupos.
/etc/gshadow: Información de contraseñas de grupo.
Ejemplo de unas Líneas del /Etc/Passwd:
juan:x:1000:1000:Juan García,,,:/home/juan:/bin/bash
root:x:0:0:root:/root:/bin/bash
Nota: si aparecen”:” seguidos, el campo está vacío.
- juan: identificador de usuario en el sistema.
- x: palabra de paso del usuario codificada, si hay una “x” es que se encuentra en el fichero /etc/shadow.
- 1000: código del usuario, lo usa el sistema como código de identidad del usuario.
- 1000: código del grupo principal al que pertenece, la información del grupo en /etc/group.
- Juan García: comentario, suele ponerse el nombre completo del usuario.
- /home/juan: directorio personal asociado a su cuenta.
- /bin/bash: shell interactivo que utilizará el usuario al interactuar con el sistema, en modo texto, o por shell gráfico. En este caso, el shell Bash de GNU, que es el utilizado por defecto.
Para evitar que cualquier usuario del sistema pueda acceder al fichero de contraseñas, existe un fichero donde se encuentra la información de estas, que es sólo accesible al usuario root y en forma de sólo lectura. El fichero es /etc/shadow, el contenido del cual podría ser algo parecido a lo siguiente:
juan:a1gNcs82ICst8CjVJS7ZFCVnu0N2pBcn/:12208:0:99999:7:::
donde se encuentra el identificador del usuario junto con la palabra de paso encriptada. Además, aparecen (como campos separados por “:”):
- Días desde 1 de enero de 1970 en que la palabra de paso se cambió por última vez.
- Días que faltan para que se cambie (0 no hay que cambiarla).
- Días después en que hay que cambiarla (o sea, plazo de cambio).
- Días en que el usuario será avisado antes de que le expire.
- Días una vez expirado cuando se le deshabilitará la cuenta.
- Días desde 1 enero 1970 en que la cuenta está deshabilitada.
- Y un campo reservado.
En /etc/group está la información de los grupos de usuarios: jose:x:1000:
Donde tenemos: nombre-grupo:contraseña grupo:identificador-del grupo:lista-usuarios
La lista de usuarios del grupo puede estar o no, ya que esa información la tenemos en /etc/passwd.
Los grupos también pueden poseer una contraseña, también existe un fichero de tipo shadow: /etc/gshadow.
Otros ficheros interesantes son los del directorio /etc/skel, donde se hallan los ficheros que se incluyen en cada cuenta de usuario al crearla.
Ejemplos: (ficheros de configuración)
Fichero /Etc/Passwd
root::0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/sh
daemon:x:2:2:daemon:/sbin:/bin/sh
adm:x:3:4:adm:/var/adm:/bin/sh
lp:x:4:7:lp:/var/spool/lpd:/bin/sh
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/bin/sh
news:x:9:13:news:/var/spool/news:/bin/sh
uucp:x:10:14:uucp:/var/spool/uucp:/bin/sh
operator:x:11:0:operator:/var:/bin/sh
games:x:12:100:games:/usr/games:/bin/sh
nobody:x:65534:65534:Nobody:/:/bin/sh
rpm:x:13:101:system user for rpm:/var/lib/rpm:/bin/false
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpc:x:70:70:system user for portmap:/:/bin/false
xfs:x:71:71:system user for xorg-x11:/etc/X11/fs:/bin/false
postfix:x:72:72:system user for postfix:/var/spool/postfix:/bin/false
messagebus:x:73:73:system user for dbus:/:/sbin/nologin
apache:x:74:74:system user for apache2:/var/www:/bin/sh
rpcuser:x:75:75:system user for nfs-utils:/var/lib/nfs:/bin/false
sshd:x:76:76:system user for openssh:/var/empty:/bin/true
ftp:x:77:77:system user for proftpd:/var/ftp:/bin/false
postgres:x:78:78:system user for postgresql:/var/lib/pgsql:/bin/bash
inma:x:501:501:Inma:/home/inma:/bin/bash
invitado:x:502:502:Invitado:/home/invitado:/bin/bash
Fichero /Etc/Shadow
root::12810:0:99999:7:::
bin:*:12810:0:99999:7:::
daemon:*:12810:0:99999:7:::
adm:*:12810:0:99999:7:::
lp:*:12810:0:99999:7:::
sync:*:12810:0:99999:7:::
shutdown:*:12810:0:99999:7:::
halt:*:12810:0:99999:7:::
mail:*:12810:0:99999:7:::
news:*:12810:0:99999:7:::
uucp:*:12810:0:99999:7:::
operator:*:12810:0:99999:7:::
games:*:12810:0:99999:7:::
nobody:*:12810:0:99999:7:::
rpm:!!:12810:0:99999:7:::
vcsa:!!:12810:0:99999:7:::
rpc:!!:12810:0:99999:7:::
xfs:!!:12810:0:99999:7:::
postfix:!!:12810:0:99999:7:::
messagebus:!!:12810:0:99999:7:::
apache:!!:12810:0:99999:7:::
rpcuser:!!:12810:0:99999:7:::
sshd:!!:12810:0:99999:7:::
ftp:!!:12810:0:99999:7:::
postgres:!!:12810:0:99999:7:::
inma:$1$hzS96Uy3$Y.IL.IuJ2hV9OX9yotorO.:12810:0:99999:7:::
invitado:$1$bIP.KWXT$w2SOOfwhXJ0OYaIYu28YY1:12810:0:99999:7:::
Comandos Útiles para la Gestión de Usuarios
useradd: añadir un usuario al sistema.
- userdel: borrar un usuario del sistema.
- usermod: modificar un usuario del sistema.
- groupadd, groupdel, groupmod lo mismo para grupos.
- newusers, chpasswd: permiten crear varias cuentas desde la información introducida en un fichero (newusers) o bien cambiar las contraseñas a un gran número de usuarios (chpasswd)
- chsh: cambiar el shell de login del usuario.
- chfn: cambiar la información del usuario, la presente en el comentario del fichero /etc/passwd.
- passwd: cambia la contraseña de un usuario.
- su: una especie de cambio de identidad. Lo utilizan tanto usuarios, como el root para cambiar el usuario actual.
NOTA: Para más detalle de cada uno de estos comandos, consulte el man.
Añadiendo Usuarios
Para añadir un usuario al sistema:
- Comando useradd para crear una cuenta de usuario bloqueada:
useradd
- Desbloquee la cuenta ejecutando el comando passwd para asignar una contraseña y configurar el vencimiento:
passwd
Opciones del comando useradd. (Ver fotografía)
EXPLICACIÓN DEL PROCESO
¿Qué ocurre al escribir useradd juan?
- Se crea una línea para juan en /etc/passwd. La línea tiene:
-
- Comienza con el nombre del usuario, juan.
- Hay una x para el campo de contraseña indicando que es sistema está usando contraseñas ocultas.
- Se crea un UID en o sobre 500.
- Se crea un GID en o por encima de 500.
- La información para el GECOS óptimo se deja en blanco.
- El directorio principal se configura a /home/juan/.
- El intérprete de comandos predeterminado se configura a /bin/bash.
- Se crea una nueva línea para juan en /etc/shadow. La línea tiene:
-
- Comienza con el nombre del usuario, juan.
-
- Aparecen dos símbolos de exclamación (!!) en el campo de la contraseña, lo cual bloquea la cuenta.
-
- Se configura la contraseña para que no caduque nunca.
- Se crea una nueva línea para un grupo llamado juan en /etc/group.La línea creada en /etc/group tiene:
-
- Comienza con el nombre del grupo, juan.
-
- Aparece una x en el campo de contraseña indicando que el sistema está usando contraseñas de grupo oculta.
-
- El GID coincide con el listado para el usuario juan en /etc/passwd.
- Es creada una nueva línea para un grupo llamado juan en /etc/gshadow. La línea tiene:
-
- Comienza con el nombre del grupo, juan.
-
- Aparece un símbolo de exclamación (!) en el campo de contraseña del archivo /etc/gshadow, lo cual bloquea el grupo.
-
- Todos los otros campos quedan en blanco.
- Se crea un directorio para el usuario juan en el directorio /home/.
- Los archivos dentro del directorio /etc/skel/ (lo cual contiene configuraciones predeterminadas del usuario) son copiadas en el nuevo directorio /home/juan/
Añadiendo grupos
Comando groupadd:
groupadd
Opciones del comando groupadd (Ver fotografía)
Ejemplos: (ficheros de configuración)
Fichero /Etc/Group
root:x:0:
bin:x:1:
daemon:x:2:messagebus
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:
news:x:13:
uucp:x:14:
man:x:15:
floppy:x:19:
games:x:20:
cdrom:x:22:
utmp:x:24:
usb:x:43:
cdwriter:x:80:
audio:x:81:
video:x:82:
users:x:100:
nogroup:x:65534:
rpm:x:101:
xgrp:x:102:xfs
ntools:x:103:
ctools:x:104:
vcsa:x:69:
rpc:x:70:
xfs:x:71:
postfix:x:72:
postdrop:x:105:postfix
messagebus:x:73:
apache:x:74:
rpcuser:x:75:
sshd:x:76:
machines:x:421:
slocate:x:422:
ftp:x:77:
postgres:x:78:
inma:x:501:
invitado:x:502:
Fichero /Etc/Gshadow
root:::
bin:::
daemon:::messagebus
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
mail:::
news:::
uucp:::
man:::
floppy:::
games:::
cdrom:::
utmp:::
usb:::
cdwriter:::
audio:::
video:::
users:::
nogroup:::
rpm:!::
xgrp:!::xfs
ntools:!::
ctools:!::
vcsa:!::
rpc:!::
xfs:!::
postfix:!::
postdrop:!::postfix
messagebus:!::
apache:!::
rpcuser:!::
sshd:!::
machines:!::
slocate:!::
ftp:!::
postgres:!::
Vencimiento de Contraseña
Para configurar el vencimiento de la contraseña para un usuario desde el intérprete de comandos, usaremos el comando chage, seguido de una opción de la tabla, seguido por el ‘nombredeusuario’ del usuario.
Importante: La contraseña oculta debe estar activada para poder usar el comando chage. (Ver fotografía)
Para obligar al usuario a configurar su contraseña la primera vez que se conecte en la consola, siga los pasos siguientes.
- Bloquear la contraseña del usuario — Si el usuario no existe, use el comando useradd para crear la cuenta del usuario.
Si la contraseña ya está activa, bloquéela con el comando:
usermod -L nombredeusuario
- Obligar el vencimiento inmediato de la contraseña — Escriba el comando siguiente:
chage -d 0 nombredeusuario
- Este comando coloca el valor para la fecha en que la contraseña fue cambiada la última vez (Enero 1, 1970).
- Desbloquear la cuenta — Hay dos formas. El administrador puede asignar una contraseña inicial o puede asignar una contraseña nula.
- Para asignar una contraseña inicial:
-
- Arranque el intérprete de línea de comandos python con el comando python. Se mostrará lo siguiente:
Python 2.2.2 (#1, Dec 10 2002, 09:57:09)
[GCC 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)] on linux2
Type «help», «copyright», «credits» or «license» for more information.
>>>
-
- En la línea de comandos, escriba lo siguiente (sustituyendo contraseña con la contraseña a encriptar y salt con una combinación de exactamente 2 caracteres en mayúsculas o minúsculas, números, y el carácter punto (.) o la barra (/)):
import crypt; print
crypt.crypt(«password»,»salt»)
-
- La salida es la contraseña encriptada similar a 12CsGd8FRcMSM.
- Presione [Ctrl]-[D] para salir del intérprete Python.
- Corte o pegue la salida exacta de la contraseña encriptada, sin dejar espacios en blanco al principio o final, en el siguiente comando:
usermod -p «contraseña-encriptada»
nombredeusuario
- Se puede asignar una contraseña nula con el comando:usermod -p «» username
- En cualquier caso, luego de la conexión inicial, se le pedirá al usuario una nueva contraseña.
Eliminando usuarios
Borrar usuarios puede hacerse con los comandos userdel o deluser dependiendo de qué software fuera instalado en el sistema. Y se hace de la misma forma que añadir.
Por ejemplo: cambiando la línea de /etc/passwd correspondiente a kiwi a kiwi:*Xv8Q981g71oKK:102:100: Laura Poole: /home/kiwi: /bin/bash evitará que kiwi se conecte.
También podemos usar el comando: userdel
Poniendo Atributos al Usuario
Después de que haya creado un usuario, puede necesitar cambiar algún atributo de dicho usuario, como puede ser el directorio inicial o la clave.
La forma más simple de hacer esto es cambiar los valores directamente en /etc/passwd. Para poner clave a un usuario, utilice el comando passwd.
Por ejemplo: # passwd larry cambiará la clave de larry.
Sólo root puede cambiar la clave de otro usuario de ésta forma.
Los usuarios pueden cambiar su propia clave con passwd también.
Configuración de Grupos y Usuarios con la Herramienta Gráfica de Red Hat Mandrake 9
CONFIGURACIÓN DE GRUPOS Y DE USUARIOS
El Administrador de usuarios le permite visualizar, modificar, añadir y borrar los usuarios y grupos locales. Para usar el Administrador de usuarios, debe estar ejecutando el sistema X Window y tener privilegios de root y tener el paquete RPM redhat-config-users instalado. Para iniciar el Administrador de usuarios desde el escritorio, Botón del menú principal (en el Panel) => Configuración del sistema => Gestor de usuarios o escriba el comando redhat-config-users en el intérprete del shell. (Ver fotografía)
Para visualizar una lista de usuarios la pestaña Usuarios. Para visualizar lista de todos los grupos pestaña Grupos.
Si necesita encontrar un usuario o grupo específico, teclee las primeras letras del nombre en el campo Buscar filtro.
Para clasificar usuarios y grupos, haga clic en el nombre de la columna. Usuarios y grupos serán clasificados por el valor de la columna.
Red Hat Linux reserva los IDs de usuario por debajo de 500 para los usuarios del sistema. Por defecto, el Administrador de usuarios no visualiza los usuarios del sistema. Para visualizar todos los usuarios, incluyendo los usuarios del sistema, Preferencias => Sistema de filtrado de usuarios y grupos desde el menú desplegadle.
AÑADIR UN NUEVO USUARIO
Para añadir un nuevo usuario, haga clic en el botón Añadir usuario. Escriba el nombre de usuario y el nombre completo para el nuevo usuario en los campos apropiados. Teclee la contraseña de usuario en los campos Contraseña y Confirmar contraseña.
Seleccione una shell de registro. El directorio principal por defecto es /home/nombredeusuario. Puede cambiar el directorio principal que se ha creado para el usuario o puede escoger no crear el directorio principal anulando la selección Crear directorio de conexión.
Red Hat Linux utiliza un esquema grupo de usuario privado (UPG). El esquema UPG no añade ni cambia nada en el modo estándar de UNIX de gestionar grupos. Siempre que cree un nuevo usuario, por defecto, se crea un grupo único con el mismo nombre que el del usuario
Para especificar el ID del usuario, seleccione Especificar el ID del usuario manualmente. Si la opción no ha sido seleccionada, se asignará al nuevo usuario el próximo ID del usuario disponible que empiece con el número 500. Red Hat Linux se reserva los IDs de usuario por debajo de 500 para los usuarios de sistemas. Pulse OK para crear el usuario. Ver imagen
MODIFICAR LAS PROPIEDADES DEL USUARIO
Para ver las propiedades de un usuario ya existente, haga clic en la pestaña Usuarios, seleccione el usuario de la lista de usuarios y haga clic en Propiedades desde el menú de botones (o escoja Fichero => Propiedades desde el menú desplegadle). Aparecerá una ventana parecida a la Figura 3. Ver imagen
La ventana Propiedades de los usuarios está dividida en dos páginas:
- Datos de Usuario — Información básica del usuario configurada cuando ha añadido el usuario.
- Información de la cuenta
- Información de la contraseña — Esta pestaña muestra la fecha en que el usuario cambió la contraseña por última vez.
- Grupos — Seleccione los grupos de los que desea que el usuario sea miembro.
AÑADIR UN NUEVO GRUPO
Pulse el botón Añadir Grupo. Aparecerá una ventana parecida a la Figura 4 nombre del grupo nuevo que desea crear. Para especificar un ID de grupo para el nuevo grupo seleccione Especificar el ID de grupo manualmente y seleccione el GID. Red Hat Linux reserva los IDs de grupo menores de 500 para los grupos de sistemas. Ver imagen
Pulse OK para crear el grupo. Aparecerá un grupo nuevo en la lista.
MODIFICAR LAS PROPIEDADES DEL GRUPO
Para ver las propiedades de un grupo ya existente, seleccione el grupo desde la lista de grupos y pulse Propiedades desde el menú (o seleccione Archivo => Propiedades desde el menú desplegadle).
Resumen
Los usuarios de un sistema GNU/Linux disponen normalmente de una cuenta asociada con sus datos, junto con el espacio en disco para que puedan desarrollar sus archivos y directorios. Este espacio está asignado al usuario, y sólo puede ser usado por éste (a no ser que los permisos especifiquen cosas diferentes).
- Existen tres tipos de cuentas: las del administrador, las del usuario y cuentas especiales de los servicios.
- Los ficheros de configuración de grupos y usuarios son: /etc/passwd, /etc/shadow, /etc/group y /etc/gshadow. El único que tiene permisos para modificar estos ficheros es el usuario root.
- Los comandos que utilizamos para la gestión de usuarios son: useradd, userdel, usermod, groupadd, groupdel, groupmod, newusers, chpasswd, chsh, chfn, passwd, su.