it-swarm.com.de

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

Da ich neu in der Linux-Administration bin, bin ich etwas verwirrt über die folgenden Befehle:

useradd
usermod
groupadd
groupmod

Ich habe gerade das Benutzerverwaltungsbuch im Linux/Unix-Administratorhandbuch gelesen, aber einige Dinge sind immer noch etwas verschwommen.

Grundsätzlich scheint useradd einfach genug zu sein:

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

Ich kann "David Hilbert" mit dem Benutzernamen hilbert hinzufügen und sein Standardverzeichnis, seine Shell und seine Gruppen festlegen. Und ich denke, dass -g ist seine primäre/Standardgruppe und -G sind seine anderen Gruppen.

Das sind also meine nächsten Fragen:

  1. Würde dieser Befehl noch funktionieren, wenn die Gruppen faculty und famous nicht existieren würden? Würde es sie nur erschaffen?
  2. Wenn nicht, welchen Befehl verwende ich, um neue Gruppen zu erstellen?
  3. Wenn ich den Benutzer hilbert entferne und keine anderen Benutzer in diesen Gruppen sind, sind sie dann noch vorhanden? Soll ich sie entfernen?
  4. Wie entferne ich David aus der Gruppe useradd, nachdem ich den obigen Befehl famous ausgeführt habe, und ordne seine primäre Gruppe hilbert zu, die noch nicht vorhanden ist?
42
cwd

Mit dem Befehl usermod können Sie die Primärgruppe, die Zusatzgruppe oder eine Reihe anderer Attribute eines Benutzers ändern. Der Schalter -g Steuert die primäre Gruppe.

Für Ihre anderen Fragen ...

  1. Wenn Sie eine Gruppe groupname angeben, die während der Phase useradd nicht vorhanden ist, wird eine Fehlermeldung angezeigt - seradd: unbekannter Gruppengruppenname

  2. Der Befehl groupadd 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. Erstellen Sie die Gruppe hilbert über groupadd hilbert. Verschieben Sie dann Davids primäre Gruppe mit usermod -g hilbert hilbert. (Bitte beachten Sie, dass das erste hilbert der Gruppenname und das zweite hilbert der Benutzername ist. Dies ist in Fällen wichtig, in denen Sie einen Benutzer in eine Gruppe mit einem anderen Namen verschieben.)

Sie können die Dinge hier jedoch etwas komplizieren. In vielen Linux-Distributionen erstellt ein einfaches useradd hilbert Den Benutzer hilbert und eine Gruppe mit demselben Namen wie die primäre. Ich würde zusätzliche Gruppen hinzufügen, die zusammen mit dem Schalter -G Angegeben wurden.

28
ewwhite

Sie müssen den man usermod Lesen, der 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 Option -G Verwenden, sollten Sie auch die Option -a Verwenden, um neue Gruppen an die aktuelle Liste der zusätzlichen Gruppen anzuhängen, zu denen der Benutzer 'hilder' gehört. Ohne die Option -a Ersetzen Sie aktuelle Zusatzgruppen durch einen neuen Gruppensatz. Verwenden Sie dies daher vorsichtig.

9
Mick

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

  • usermod -g new_group user_name
  • beenden Sie die aktiven Sitzungen von all user_name

Um Ihre Änderungen zu testen, führen Sie id aus und überprüfen Sie den Wert von gid=

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

5
ndemou

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

# nano /etc/group

Der Nachteil der Bearbeitung /etc/group direkt 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, suchen Sie sie in /etc/group) Beachten Sie, dass die Syntax wie folgt lautet:

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

Es gibt keinen Nachteil, den ich mir bei diesem Ansatz vorstellen kann (vorausgesetzt, Sie kennen die GID). Er wird häufig für lokale Benutzer verwendet, hauptsächlich weil ich viele verschiedene UNIX-Systeme mit unterschiedlichen usermod, adduser und useradd Befehlsoptionen.

Es ist etwas manueller, macht aber den Job. Beachten Sie, dass Sie vi iso nano verwenden können, um die Dateien zu bearbeiten, wenn Sie vi kennen.

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

  • befehl usermod -g Gruppenname Benutzername

Oder Sie können newgrp für kleine Umgebungen und vorübergehende Situationen 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_number) Bob standardmäßig als primäre Gruppe

groupadd dodo

Fügen Sie den Benutzer bob der Gruppe dodo hinzu:

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

Verwenden Sie als Nächstes newgrp, um den Eigentümer zu ändern:

newgrp dodo

Achten Sie auf Ihr Konto, um ein Passwort zu haben und Mitglied der zukünftigen Primärgruppe 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 wieder auf das Original zurückzusetzen, können Sie die neue Shell verlassen, indem Sie den Befehl exit ausführen.

0
Dragos Alexe