El shell de linux: Usuarios y grupos | Algo de Linux

viernes, 21 de noviembre de 2008

El shell de linux: Usuarios y grupos

No trabajo habitualmente con usuarios locales porque en los centros tenemos centralizados los usuarios en un servidor de LDAP, pero en ocasiones hay que crear algún usuario local. Éstos son algunos de los comandos que suelo usar para trabajar con usuarios y grupos:

Añadir usuarios.

Cuando necesito añadir nuevos usuarios locales, normalmente utilizo adduser, que, además de crear el usuario, crea también su home.
Si queremos crear un usuario, pero no necesitamos crear un directorio home para él, podemos emplear useradd en lugar de adduser.
Podemos ajustar algunas preferencias a la hora de crear usuarios en el fichero: /etc/adduser.conf.

Ejemplo:
# adduser mfernandez

Y el sistema nos preguntará los datos del usuario, además de una password de acceso.
Por defecto, se creará un grupo con el nombre del usuario y éste será el grupo por defecto. Este comportamiento puede modificarse en /etc/adduser.conf.

Ejemplo: Si queremos añadir un nuevo usuario, llamado enavas al sistema, estableciendo users como su grupo principal, podemos hacerlo de la siguiente manera:

# adduser –ingroup users enavas

Ahora bien, si lo que queremos es añadir un usuario a un grupo existente, podemos hacerlo de la siguiente manera:
# adduser usuario grupo

Ejemplo: Supongamos que queremos añadir el usuario enavas al grupo plugdev:

# adduser enavas plugdev

El comando anterior añade el usuario enavas, previamente creado, al grupo plugdev.

Añadir grupos.
Para añadir grupos locales al sistema, podemos emplear el comando addgroup.
También podemos ajustar algunas preferencias a la hora de crear usuarios en el fichero: /etc/adduser.conf.

Podemos añadir un nuevo grupo local al sistema con el comando addgroup.

# addgroup grupo

Ejemplo: Si queremos añadir el grupo profesores al sistema, ejecutaremos:

# addgroup profesores

Una última cosa: De forma alternativa, en lugar de usar los comandos adduser y addgroup, podemos añadir usuarios y grupos empleando otros comandos como useradd y groupadd. Estos comandos leen información de configuración del fichero /etc/login.defs.

Eliminar usuarios.
Para eliminar usuarios podemos usar el comando userdel.

Ejemplo: Si queremos eliminar el usuario local dfernandez, ejecutaremos el siguiente comando:

# userdel dfernandez

Si, además, empleamos el parámetro -r, también se borrará el directorio personal del usuario con todo su contenido.

Ejemplo:

# userdel -r dfernandez

Eliminar grupos.
Para eliminar grupos podemos emplear el comando groupdel.

Ejemplo: Si queremos eliminar el grupo alumnos del sistema local, ejecutaremos:

# groupdel alumnos

Modificar usuarios y grupos
Para modificar las características de los usuarios y grupos se emplean los comandos usermod y groupmod.

Ejemplo: Imaginemos que queremos cambiar el directorio home del usuario dgonzalezs01 para que sea /home/alumnos/dgonzalezs01.

# usermod -d /home/alumnos/dgonzalezs01 -m

La opción -m hace que mueva el contenido del antiguo home al nuevo emplazamiento.

Si lo que queremos es cambiar el grupo inicial al que pertenece el usuario, haremos lo siguiente:
# usermod -g grupo usuario

Ejemplo: Cambia el grupo inicial del usuario jmartinezd01 para que sea profesor.
# usermod -g profesor jmartinezd01

Si queremos cambiar el nombre del usuario:
# usermod -l nuevonombre nombreactual

Ejemplo:
# usermod -l cfernandez carlosfernandez

El nuevo nombre del usuario carlosfernandez será cfernandez.

Y si queremos cambiar el nombre de un grupo, lo haremos de la siguiente manera:
# groupmod -n nuevonombregrupo nombreactualgrupo

Ejemplo:
# groupmod -n profesores profes

Cambia el nombre del grupo profes a profesores.

Algunos ficheros relacionados con las cuentas de usuario son:

/etc/passwd: contiene información sobre cada usuario:
  • ID.
  • grupo principal.
  • descripción.
  • directorio de inicio.
  • shell, etc.
  • También contiene el password encriptado, salvo que se usen shadow passwords.
/etc/shadow: contiene los passwords encriptados de los usuarios, cuando se emplean shadow passwords.

/etc/group: contiene los miembros de cada grupo, excepto para el grupo principal, que aparece en el fichero /etc/passwd.

/etc/skel: directorio que contiene el contenido del directorio de los nuevos usuarios.

2 comentarios:

jose maria de abasolo perez dijo...

muy bueno , me lo apunto
saludos .....

Anónimo dijo...

Post súper-útil que tengo guardado en mis favoritos desde hace tiempo, muy bueno, muchas gracias.

También para complementar el artículo: Ver los grupos a los que pertenece un usuario:

http://www.sysadmit.com/2016/08/linux-saber-a-que-grupos-pertenece-un-usuario.html