Come aggiungere un utente esistente a un gruppo esistente?


669

Voglio aggiungere l'utente Apache ( www-data) al audiogruppo. Ho letto la pagina man per useradd, ma non ho fortuna. Sto eseguendo xubuntu 11.10. Ecco cosa sto facendo:

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

Se lascio fuori l' -Gopzione, bash, stampa le informazioni di aiuto per useradd:

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

Dalla pagina man non mi è chiaro quali opzioni dovrei usare per farlo funzionare.

Risposte:


1040

Il useraddcomando tenterà di aggiungere un nuovo utente. Poiché il tuo utente esiste già, questo non è ciò che desideri.

Invece: per modificare un utente esistente, come aggiungere quell'utente a un nuovo gruppo, utilizzare il usermodcomando

Prova questo:

sudo usermod -a -G groupName userName

L'utente dovrà disconnettersi e riconnettersi per vedere il loro nuovo gruppo aggiunto.

  • L' -aopzione (append) è essenziale. Altrimenti, l'utente verrà rimosso da qualsiasi gruppo, non nell'elenco.

  • Lo -Gswitch accetta un elenco (separato da virgole) di gruppi aggiuntivi a cui assegnare l'utente.


71
sudo usermod -a -G [group-name] [user-name]: Solo una sveltina per coloro che danno un'occhiata alla risposta solo dopo aver letto il titolo
Programster

36
Penso che il modo preferito ora sia sudo adduser user group. È una sintassi più semplice e pulita. Vedi la risposta di @Bai.
ctbrown

3
@wilhil:: man usermod" -a, --append - Aggiungi l'utente ai gruppi supplementari. Usa solo con l'opzione -G .; -G, --groups GROUP1 [, GROUP2, ... [, GROUPN] ]] [...] Se l'utente è attualmente membro di un gruppo che non è elencato, l'utente verrà rimosso dal gruppo. Questo comportamento può essere modificato tramite l'opzione -a, che aggiunge l'utente all'attuale supplemento elenco di gruppi ".
Adam Michalik,

18
C'è un modo per aggirare la parte "logout and back in"? Qualche tipo di comando update-groups, forse?
con-f-use

14
@ con-f-use, se puoi eseguirlo sudo login -f YOURUSERNAME, avvierà una nuova sessione di shell. Utilizzare il idcomando per verificare che la nuova sessione sia nel gruppo corretto di gruppi. Tuttavia, questo non è "globale", non si applica ai terminali che sono già aperti. Quindi, davvero, disconnettersi è l'opzione migliore, ove possibile
Aaron McDaid

222

Aggiunta di un utente a un gruppo:

sudo adduser user group

Rimozione di un utente da un gruppo:

sudo deluser user group

3
non è esattamente quello che questa domanda viene posta
Tejendra,

11
Il commento di @ Tejendra sembra presupporre che l'uso di useradd sia desiderabile / obbligatorio per rispondere alla domanda di OP; Forse a questa risposta mancano solo parole per indicare che adduser / deluser è un'alternativa migliore.
salvia,

12
Per me l'interfaccia più semplice è meglio, ecco perché mi piace questa.
Betlista,

4
Questa è esattamente la domanda che viene posta. @knocte, sì, penso che sia specifico per Debian
Auspex,

3
@Auspex Posso confermare che non funziona su Red Hat.
Stibu,

54

Dopo aver aggiunto a un utente esistente:

usermod -a -G group user  

Potrebbe essere necessario disconnettersi e accedere per ottenere le autorizzazioni dei gruppi /etc/group.


21
Rendere la parte "necessità di disconnettersi e accedere" in grassetto.
Jin Kwon il

Cordiali saluti: Penso che il idcomando dovrebbe indicare che sei stato aggiunto al gruppo senza dover uscire. id myuser
ficuscr,

5
Per Ubuntu 14.10 è stato necessario disconnettersi e riconnettersi.
A.Danischewski,

26

Io di solito uso

sudo gpasswd -a myuser mygroup

3
usermod non era disponibile sul mio sistema ubuntu 14.04. Questo ha funzionato alla grande!
Estratto il

Funzionava perfettamente anche su Debian Stretch, dove usermodnon era installato.
Josh Habdas,

8

Sto pubblicando questo come risposta perché non ho abbastanza reputazione per commentare. Come accennato da @ dpendolino, affinché gli effetti di questo comando persistano:

sudo usermod -a -G groupName userName

... è necessario disconnettersi / accedere nuovamente.

Tuttavia, se hai bisogno di una scorciatoia per iniziare a utilizzare immediatamente la tua nuova appartenenza al gruppo (e hai i privilegi sudo corretti ) ho trovato questa soluzione:

$ sudo su -
# su [userName]
$ groups

Spiegazione:

  • sudo su - ti darà una shell di root
  • su [userName] ti riporta in una shell con il tuo utente
  • groupsquando eseguito ora mostrerà il gruppo che hai aggiunto con il usermod -aGcomando

Nel mio caso stavo cercando di aggiungere il gruppo 'docker' al mio utente

Prima:

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

Dopo:

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

5

Su Ubuntu, poiché l' accesso come rootnon è abilitato , gli utenti del sudogruppo possono elevare i privilegi per determinati comandi con restrizioni. Qualsiasi comando limitato deve essere anteposto sudoper elevare il privilegio.

sudo usermod -a -G group user

aggiungerà l'utente esistente usera un gruppo supplementare denominato group. Il gruppo primario dell'utente rimarrà invariato.


1
sudo usermod -a -G groupName userName

funzionerà bene, ma ho dovuto riavviare del tutto, basta disconnettersi e riconnettersi non ha fatto il lavoro ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.