Domanda Come aggiungere un utente esistente a un gruppo esistente?


Voglio aggiungere l'utente Apache (www-data) al audio gruppo. Ho letto la pagina man per useradd, ma non sto avendo 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 il -G opzione, 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...

Non mi è chiaro dalla pagina man quali opzioni dovrei usare per fare in modo che funzioni.


578
2017-11-15 18:21


origine




risposte:


Il useradd comando proverà ad 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, usa il usermod comando.

Prova questo:

sudo usermod -a -G groupName userName

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

  • Il -a (aggiungere) è essenziale. In caso contrario, l'utente verrà rimosso da qualsiasi gruppo, non nell'elenco.

  • Il -G switch accetta un elenco (separato da virgola) di gruppi aggiuntivi a cui assegnare l'utente.


889
2017-11-15 18:33



sudo usermod -a -G [group-name] [user-name] : Solo una sveltina per quelli che guardano solo la risposta dopo aver letto il titolo - Programster
Penso che il modo preferito ora sia sudo adduser user group. È una sintassi più semplice e più pulita. Guarda la risposta di @Bai. - ctbrown
@wilhil: man usermod: "-a, --appende - Aggiungi l'utente ai gruppi supplementari. Usare solo con l'opzione -G .; -G, --groups GRUPPO1 [, 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'elenco di gruppi supplementari corrente. " - Adam Michalik
C'è un modo per aggirare la parte "logout e back in"? Qualche comando di gruppi di aggiornamento, forse? - con-f-use
@ con-f-use, se puoi correre sudo login -f YOURUSERNAME, inizierà una nuova sessione di shell. Usa il id comando per verificare che la nuova sessione sia nell'insieme corretto di gruppi. Tuttavia, questo non è "globale" - non si applica ai terminali che sono già aperti. Quindi, davvero, la disconnessione è l'opzione migliore, ove possibile - Aaron McDaid


Aggiunta di un utente a un gruppo:

sudo adduser user group

Rimozione di un utente da un gruppo:

sudo deluser user group

192
2018-01-12 13:09



non esattamente ciò che questa domanda è stata chiesta - Tejendra
@ Il commento di Tejendra sembra presupporre che l'uso di useradd sia desiderabile / obbligatorio per rispondere alla domanda dell'OP; Forse questa risposta manca solo di parole per indicare che adduser / deluser è un'alternativa migliore. - sage
Per me l'interfaccia più semplice è migliore, ecco perché mi piace questo. - Betlista
Questo è Esattamente la domanda è stata posta. @knocte, sì, penso che sia specifico di Debian - Auspex
@Auspex Posso confermare che non funziona su Red Hat. - Stibu


Dopo aver aggiunto a un utente esistente:

usermod -a -G group user  

Potrebbe essere necessario disconnetti e accedi per ottenere i permessi dei gruppi da /etc/group.


47
2018-02-22 17:16



Si prega di rendere la parte "necessario per il logout e il login" in grassetto. - Jin Kwon
FYI: Penso che il id il comando dovrebbe indicare che sei stato aggiunto al gruppo senza dover uscire. id myuser - ficuscr
È stato necessario disconnettersi e rientrare da me su Ubuntu 14.10. - A.Danischewski


Io normalmente uso

sudo gpasswd -a myuser mygroup

24
2017-11-15 18:47



usermod non era disponibile sul mio sistema ubuntu 14.04. Questo ha funzionato alla grande! - Drew


Su Ubuntu, da allora accedere come root non è abilitato, utenti nel sudo il gruppo può elevare i privilegi per determinati comandi limitati. Qualsiasi comando limitato deve essere preceduto da sudo elevare il privilegio.

sudo usermod -a -G gruppo utente

aggiungerà l'utente esistente user a un gruppo supplementare chiamato group. Il gruppo principale dell'utente rimarrà invariato.


4
2018-02-25 21:58





Sto postando questo come risposta perché non ho abbastanza reputazione per commentare. Come @ dpendolino ha menzionato, per gli effetti di questo comando di persistere:

sudo usermod -a -G groupName userName

... è necessario disconnettersi / accedere di nuovo.

Tuttavia, se hai bisogno di un collegamento per iniziare a utilizzare la tua nuova appartenenza al gruppo subito (e tu hai il corretto sudo privilegi) Ho trovato questo work-around:

$ sudo su -
# su [userName]
$ groups

Spiegazione:

  • sudo su - ti darò una shell di root
  • su [userName] ti riporta a una shell con il tuo utente
  • groups quando esegui ora mostrerà il gruppo che hai aggiunto con usermod -aG comando

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

2
2018-03-25 17:49