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