¿Cómo agregar un usuario existente a un grupo existente?


669

Quiero agregar el usuario de Apache ( www-data) al audiogrupo. He leído la página del manual useradd, pero no tengo suerte. Estoy ejecutando xubuntu 11.10. Esto es lo que estoy haciendo:

$ sudo useradd -G audio www-data
useradd: user 'www-data' already exists

Si omito la -Gopción, bash, imprime la información de ayuda para useradd:

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

Desde la página del manual no me queda claro qué opciones debo usar para que esto funcione.

Respuestas:


1040

El useraddcomando intentará agregar un nuevo usuario. Como su usuario ya existe, esto no es lo que desea.

En cambio: para modificar un usuario existente, como agregar ese usuario a un nuevo grupo, use el usermodcomando.

Prueba esto:

sudo usermod -a -G groupName userName

El usuario deberá cerrar sesión y volver a iniciar sesión para ver su nuevo grupo agregado.

  • El -ainterruptor (agregar) es esencial. De lo contrario, el usuario será eliminado de cualquier grupo, no en la lista.

  • El -Gconmutador toma una lista (separada por comas) de grupos adicionales para asignar al usuario.


71
sudo usermod -a -G [group-name] [user-name]: Solo un rápido para aquellos que solo miran la respuesta después de leer el titular
— Programster

36
Creo que la forma preferida ahora es sudo adduser user group. Es una sintaxis más simple y limpia. Ver la respuesta de @Bai.
— ctbrown

3
@wilhil:: man usermod" -a, --append - Agrega el usuario a los grupos suplementarios. Úselo solo con la opción -G .; -G, --grupos GROUP1 [, GROUP2, ... [, GROUPN] ]] [...] Si el usuario es actualmente un miembro de un grupo que no está en la lista, el usuario será eliminado del grupo. Este comportamiento se puede cambiar a través de la opción -a, que agrega al usuario al complemento actual lista de grupo ".
— Adam Michalik

18
¿Hay alguna forma de evitar la parte de "cerrar sesión y volver a entrar"? ¿Algún tipo de comando de actualización de grupos, tal vez?
— con-f-use

14
@ con-f-use, si puede ejecutar sudo login -f YOURUSERNAME, se iniciará una nueva sesión de shell. Use el idcomando para verificar que la nueva sesión esté en el conjunto correcto de grupos. Sin embargo, esto no es "global": no se aplica a terminales que ya están abiertas. Entonces, realmente, cerrar sesión es la mejor opción, siempre que sea posible
— Aaron McDaid el

222

Agregar un usuario a un grupo:

sudo adduser user group

Eliminar un usuario de un grupo:

sudo deluser user group

3
no es exactamente lo que se hace esta pregunta
— Tejendra

11
El comentario de @ Tejendra parece presuponer que usar useradd es deseable / obligatorio para responder la pregunta de OP; Quizás a esta respuesta solo le faltan palabras para indicar que adduser / deluser es una mejor alternativa.
— sabio

12
Para mí, una interfaz más simple es mejor, por eso me gusta esta.
— Betlista

44
Esta es exactamente la pregunta que se hace. @knocte, sí, creo que es específico de Debian
— Auspex

3
@Auspex Puedo confirmar que no funciona en Red Hat.
— Stibu

54

Después de agregar a un usuario existente:

usermod -a -G group user  

Es posible que deba cerrar sesión e iniciar sesión para obtener los permisos de los grupos /etc/group.


21
Indique en negrita la parte "necesita cerrar sesión e iniciar sesión".
— Jin Kwon

FYI: Creo que el idcomando debería indicar que te agregaron al grupo sin necesidad de salir. id myuser
— ficuscr

55
Para mí, era necesario cerrar sesión y volver a iniciarla en Ubuntu 14.10.
— A.Danischewski

26

Normalmente uso

sudo gpasswd -a myuser mygroup

3
usermod no estaba disponible en mi sistema ubuntu 14.04. Esto funcionó muy bien!
— Drew

Esto funcionó muy bien en Debian Stretch también, donde usermodno estaba instalado.
— Josh Habdas

8

Estoy publicando esto como respuesta porque no tengo suficiente reputación para comentar. Como se menciona en @ dpendolino, para que los efectos de este comando persistan:

sudo usermod -a -G groupName userName

... necesita cerrar sesión / iniciar sesión nuevamente.

Sin embargo, si necesita un acceso directo para comenzar a usar su nueva membresía de grupo inmediatamente (y tiene los privilegios de sudo correctos ), he encontrado esta solución alternativa:

$ sudo su -
# su [userName]
$ groups

Explicación:

  • sudo su - te dará una cáscara de raíz
  • su [userName] te devuelve a un shell con tu usuario
  • groupscuando se ejecute ahora, mostrará el grupo que agregó con el usermod -aGcomando

En mi caso, estaba tratando de agregar el grupo 'docker' a mi usuario

Antes de:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Después:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

5

En Ubuntu, dado que iniciar sesión como rootno está habilitado , los usuarios del sudogrupo pueden elevar los privilegios para ciertos comandos restringidos. Cualquier comando restringido debe anteponerse sudopara elevar el privilegio.

sudo usermod -a -G group user

agregará el usuario existente usera un grupo suplementario llamado group. El grupo primario del usuario permanecerá sin cambios.


1
sudo usermod -a -G groupName userName

funcionará bien, pero tuve que reiniciar por completo, solo cerrar sesión e iniciar sesión nuevamente no hizo el trabajo ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.