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.