Linux #02.08 Usuarios y Grupos en Linux

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 鈥渪鈥 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?

  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. Se crea un directorio para el usuario juan en el directorio /home/.
  1. 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.

  1. 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

  2. Obligar el vencimiento inmediato de la contrase帽a 鈥 Escriba el comando siguiente:

    chage -d 0 nombredeusuario

  3. Este comando coloca el valor para la fecha en que la contrase帽a fue cambiada la 煤ltima vez (Enero 1, 1970).
  4. Desbloquear la cuenta 鈥 Hay dos formas. El administrador puede asignar una contrase帽a inicial o puede asignar una contrase帽a nula.
  5. 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

  1. Se puede asignar una contrase帽a nula con el comando:usermod -p 芦禄 username
  2. 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.