Wie kann ich die Standardgruppe eines Benutzers unter Linux ändern?

41

Als Neuling in der Linux-Administration bin ich etwas verwirrt über die folgenden Befehle:

useradd
usermod
groupadd
groupmod

Ich habe gerade das Handbuch zur Benutzerverwaltung im Linux / Unix-Administratorhandbuch gelesen, aber einige Dinge sind immer noch ein wenig verschwommen.

Scheint im Grunde useradddirekt genug:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Ich kann "David Hilbert" mit Benutzernamen hinzufügen hilbertund sein Standardverzeichnis, seine Shell und seine Gruppen festlegen. Und ich denke, das -gist seine primäre / Standardgruppe und -Gsind seine anderen Gruppen.

Das sind also meine nächsten Fragen:

  1. Würde dieser Befehl immer noch funktionieren, wenn die Gruppen facultyund famousnicht vorhanden wären ? Würde es sie nur erschaffen?
  2. Wenn nicht, welchen Befehl verwende ich, um neue Gruppen zu erstellen?
  3. Wenn ich den Benutzer entferne hilbertund keine anderen Benutzer in diesen Gruppen sind, sind sie dann noch vorhanden? Soll ich sie entfernen?
  4. useraddWie entferne ich David aus der famousGruppe und ordne seine primäre Gruppe zu, hilbertdie noch nicht vorhanden ist, nachdem ich den obigen Befehl ausgeführt habe ?
cwd
quelle

Antworten:

27

Mit dem usermodBefehl können Sie die Primärgruppe, die Zusatzgruppe oder eine Reihe anderer Attribute eines Benutzers ändern. Der -gSchalter steuert die primäre Gruppe.

Für Ihre anderen Fragen ...

  1. Wenn Sie eine Gruppe angeben groupname, die während der useraddPhase nicht vorhanden ist , wird der Fehler useradd: unknown group groupname angezeigt

  2. Der groupaddBefehl erstellt neue Gruppen.

  3. Die Gruppe bleibt bestehen, wenn Sie alle darin enthaltenen Benutzer entfernen. Sie müssen die leere Gruppe nicht unbedingt entfernen.

  4. Erstelle die hilbertGruppe über groupadd hilbert. Bewegen Sie dann die primäre Gruppe von David mit usermod -g hilbert hilbert. (Bitte beachten Sie, dass der erste hilbertder Gruppenname und der zweite hilbertder Benutzername ist. Dies ist wichtig, wenn Sie einen Benutzer in eine Gruppe mit einem anderen Namen verschieben.)

Hier kann es jedoch zu Komplikationen kommen. In vielen Linux-Distributionen werden mit einem einfachen useradd hilbertBefehl der Benutzer hilbertund eine Gruppe mit demselben Namen wie der primäre Benutzer erstellt . Ich würde zusätzliche Gruppen hinzufügen, die mit dem -GSchalter zusammen angegeben wurden .

ewwhite
quelle
1
Vielen Dank. Wenn ich das tue, usermod -g hilbert hilbertwird das Hilberts andere Gruppen entfernen? Wenn ja, wie würde ich diese anderen Gruppen behalten? Wenn nicht, wow würde ich ihn aus seinen anderen Gruppen entfernen?
KWD
Testen Sie es und sehen Sie für Ihre spezielle Umgebung.
ewwhite
@ Micks Antwort wird positiv bewertet, weil er darauf hinweist, dass Sie -a mit -G verwenden müssen (andernfalls wird jede Gruppe, die Sie auslassen, entfernt )
Jeff
9

Sie müssen das lesen, man usermoddas erklärt, was mit den verschiedenen Optionen passiert:

usermod -g hilder hilder

Ersetzt Ihre Anmeldegruppe von 'Fakultät' zu 'Hilder', solange die Gruppe 'Hilder' existiert. Wenn es nicht existiert, müssen Sie es zuerst mit groupadd erstellen.

Wenn Sie die -GOption verwenden, sollten Sie auch die -aOption verwenden, um der aktuellen Liste der zusätzlichen Gruppen, zu denen der Benutzer 'hilder' gehört, neue Gruppen hinzuzufügen. Ohne die -aOption ersetzen Sie aktuelle Ergänzungsgruppen durch einen neuen Gruppensatz. Gehen Sie daher vorsichtig damit um.

Mick
quelle
5

So ändern Sie die primäre Gruppe eines Benutzers unter Linux:

  • usermod -g new_group user_name
  • Beenden Sie alle aktiven Sitzungen von Benutzername

Um Ihre Änderungen zu testen, führen Sie sie aus idund überprüfen Sie den Wert vongid=

Wenn der Befehl fehlerfrei ausgeführt wird, die GID sich jedoch nicht geändert hat, haben Sie den fett gedruckten Teil von Schritt 2 übersehen.

ndemou
quelle
1

Antwort 1 ist gut. Sie können jedoch auch Folgendes eingeben, um eine neue Gruppe hinzuzufügen:

# nano /etc/group

Der Nachteil der /etc/groupdirekten Bearbeitung ist, dass Sie eine nicht verwendete GID (Gruppen-ID-Nummer) erstellen müssen.

Im Folgenden können Sie die primäre Gruppe eines Benutzers ändern. # nano /etc/passwd

Sie suchen die Zeile des Benutzers und ändern die GID (Gruppennummer, nachschlagen in /etc/group). Beachten Sie dabei, dass die Syntax wie folgt lautet:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Es gibt keinen Nachteil ist , ich von diesem Ansatz denken kann (vorausgesetzt , Sie kennen die GID), ist es , was häufig ich für lokale Benutzer verwendet, vor allem , weil ich viele verschiedenen UNIX - Systeme mit unterschiedlichen verwenden usermod, adduserund useraddBefehlsoptionen.

Es ist etwas mehr manuell, erledigt jedoch die Arbeit. Beachten Sie, dass Sie viISO verwenden können nano, um die Dateien zu bearbeiten, wenn Sie wissen vi.

Nikolai Alexandrov Georgiev
quelle
0

Um die primäre Gruppe des Benutzers dauerhaft zu ändern, führen Sie Folgendes aus:

  • usermod -g Gruppenname Benutzername Befehl

Oder Sie könnten newgrpfür kleine Umgebung und vorübergehende Situation verwenden.

Erstellen Sie einen neuen Benutzer Bob und eine neue Gruppe dodo.

useradd bob

In RedHat / Centos haben wir also UID = (ID_number) bob; GID = (ID_Nummer) Bob als primäre Gruppe standardmäßig

groupadd dodo

Fügen Sie den Benutzer bob der dodoGruppe hinzu:

usermod -aG dodo bob -make sure to use "a"

Nächste Verwendung newgrpzum Ändern des Besitzers:

newgrp dodo

Achten Sie auf Ihr Konto, um ein Passwort zu haben und Mitglied der zukünftigen primären Gruppe zu sein. Und der newgrp öffnet eine neue Shell; Solange der Benutzer in dieser Shell bleibt, ändert sich die primäre Gruppe nicht. Um die primäre Gruppe auf die ursprüngliche zurückzusetzen, können Sie die neue Shell mit dem Befehl exit verlassen.

Dragos Alexe
quelle