Wie füge ich einen bestehenden Benutzer zu einer bestehenden Gruppe hinzu?


669

Ich möchte den Apache-Benutzer ( www-data) zur audioGruppe hinzufügen . Ich habe die Manpage für gelesen useradd, aber ich habe kein Glück. Ich lasse xubuntu 11.10 laufen. Folgendes mache ich:

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

Wenn ich die -GOption weglasse, druckt bash die Hilfeinformationen für useradd:

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

Auf der Manpage ist mir nicht klar, welche Optionen ich verwenden sollte, damit dies funktioniert.

Antworten:


1040

Der useraddBefehl versucht, einen neuen Benutzer hinzuzufügen. Da Ihr Benutzer bereits existiert, ist dies nicht das, was Sie wollen.

Stattdessen: Verwenden Sie den usermodBefehl, um einen vorhandenen Benutzer zu ändern, z. B. um diesen Benutzer einer neuen Gruppe hinzuzufügen .

Versuche dies:

sudo usermod -a -G groupName userName

Der Benutzer muss sich abmelden und erneut anmelden , damit seine neue Gruppe hinzugefügt wird.

  • Der -aSchalter (Anhängen) ist wichtig. Andernfalls wird der Benutzer aus allen Gruppen entfernt, die nicht in der Liste enthalten sind.

  • Der -GSwitch verwendet eine (durch Kommas getrennte) Liste zusätzlicher Gruppen, denen der Benutzer zugewiesen werden soll.


71
sudo usermod -a -G [group-name] [user-name]: Nur ein kleiner Vorgeschmack für diejenigen, die erst nach dem Lesen der Überschrift einen Blick auf die Antwort werfen
Programster

36
Ich denke, der bevorzugte Weg ist jetzt sudo adduser user group. Die Syntax ist einfacher und übersichtlicher. Siehe die Antwort von @Bai.
Ctbrown

3
@wilhil:: man usermod" -a, --append - Fügt den Benutzer der / den zusätzlichen Gruppe (n) hinzu. Nur mit der Option -G verwenden . ; -G, --groups GROUP1 [, GROUP2, ... [, GROUPN] ]] [...] Wenn der Benutzer zurzeit Mitglied einer Gruppe ist, die nicht aufgeführt ist, wird der Benutzer aus der Gruppe entfernt.Dieses Verhalten kann über die Option -a geändert werden, die den Benutzer an die aktuelle Ergänzung anfügt Gruppenliste. "
Adam Michalik

18
Gibt es eine Möglichkeit, den Teil "Abmelden und wieder einsteigen" zu umgehen? Vielleicht irgendeine Art von Befehl update-groups?
con-f-use

14
@ con-f-Nutzung, wenn Sie ausführen können sudo login -f YOURUSERNAME, wird es eine neue Shell - Sitzung starten. Verwenden Sie den idBefehl, um zu überprüfen, ob sich die neue Sitzung in der richtigen Gruppe von Gruppen befindet. Dies ist jedoch nicht "global" - es gilt nicht für Terminals, die bereits geöffnet sind. Also, wirklich, Abmelden ist die beste Option, wo immer möglich
Aaron McDaid

222

Hinzufügen eines Benutzers zu einer Gruppe:

sudo adduser user group

Einen Benutzer aus einer Gruppe entfernen:

sudo deluser user group

3
Nicht genau das, was diese Frage gestellt wird
Tejendra

11
@ Tejendras Kommentar scheint vorauszusetzen, dass die Verwendung von useradd wünschenswert / obligatorisch ist, um die Frage von OP zu beantworten. Vielleicht fehlen in dieser Antwort nur Wörter, um anzuzeigen, dass adduser / deluser eine bessere Alternative ist.
Salbei

12
Für mich ist eine einfachere Benutzeroberfläche besser, deshalb mag ich diese.
Betlista

4
Dies ist genau die Frage, die gestellt wird. @knocte, ja, ich denke, es ist Debian-spezifisch
Auspex

3
@Auspex Ich kann bestätigen, dass es mit Red Hat nicht funktioniert.
Stibu

54

Nach dem Hinzufügen zu einem vorhandenen Benutzer:

usermod -a -G group user  

Möglicherweise müssen Sie sich abmelden und anmelden , um die Gruppenberechtigungen zu erhalten /etc/group.


21
Bitte machen Sie es den Teil "müssen sich ausloggen und einloggen" fett.
Jin Kwon

Zu idIhrer Information: Ich denke, der Befehl sollte anzeigen, dass Sie der Gruppe hinzugefügt wurden, ohne dass Sie beenden müssen. id myuser
Ficuscr

5
Auf Ubuntu 14.10 war es für mich erforderlich, mich aus- und wieder einzuloggen.
A.Danischewski

26

Ich benutze normalerweise

sudo gpasswd -a myuser mygroup

3
usermod war auf meinem system ubuntu 14.04 nicht verfügbar. Das hat super geklappt!
Drew

Dies funktionierte auch auf Debian Stretch hervorragend, wo usermodes nicht installiert war.
Josh Habdas

8

Ich poste dies als Antwort, weil ich nicht genug Reputation habe, um Kommentare abzugeben. Wie bei @ dpendolino erwähnt, bleiben die Auswirkungen dieses Befehls bestehen:

sudo usermod -a -G groupName userName

... müssen Sie sich wieder abmelden / einloggen.

Wenn Sie jedoch eine Verknüpfung benötigen, um Ihre neue Gruppenmitgliedschaft sofort zu verwenden (und Sie haben die richtigen Sudo- Berechtigungen), habe ich diese Problemumgehung gefunden:

$ sudo su -
# su [userName]
$ groups

Erläuterung:

  • sudo su - gibt dir eine root-Shell
  • su [userName] führt Sie mit Ihrem Benutzer zu einer Shell zurück
  • groupsWenn Sie jetzt ausführen, wird die Gruppe angezeigt, die Sie mit dem usermod -aGBefehl hinzugefügt haben

In meinem Fall habe ich versucht, meinem Benutzer die Gruppe "Docker" hinzuzufügen

Vor:

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

Nach:

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

5

Da unter Ubuntu die Anmeldung als rootnicht aktiviert ist , können Benutzer in der sudoGruppe die Berechtigungen für bestimmte eingeschränkte Befehle erhöhen. Jeder eingeschränkte Befehl muss vorangestellt werden sudo, um die Berechtigungen zu erhöhen.

sudo usermod -a -G group user

fügt den vorhandenen Benutzer usereiner zusätzlichen Gruppe mit dem Namen hinzu group. Die primäre Gruppe des Benutzers bleibt unverändert.


1
sudo usermod -a -G groupName userName

wird gut funktionieren, aber ich musste komplett neu starten , nur abmelden und wieder einloggen hat den Job nicht gemacht ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.