Wie füge ich Benutzer einer anderen Benutzergruppe hinzu?

9

Ich habe einen Benutzer John und einen Benutzer Keith in Ubuntu Server

Ich habe diese Benutzer mit hinzugefügt

sudo adduser John 
sudo adduser Keith

Wie kann ich jetzt John zu Keiths Gruppe hinzufügen?

Ich habe es versucht:

sudo usermod -aG Keith john

Aber ich verstehe:

usermod: group 'Keith' does not exist

Was muss ich tun, um dieses Problem zu beheben?

Natasha Thapa
quelle

Antworten:

17

Sie können verwenden: usermod -a -G grouptoadd username

Da es weit weniger offensichtlich ist als ich dachte, warum -a -G in Ordnung ist, während -aG nicht in Ordnung ist, werde ich versuchen, es zu erklären:

Die Option -G nimmt entweder einen Wert oder eine Liste von Werten an. Bei einem Wert kann der Wert wie folgt angegeben werden: -GVALUE, da zwischen der Option und dem Wert kein Leerzeichen erforderlich ist. Dies ist nur gängige Praxis.

Wenn Sie eine Gruppe mit dem Namen a auf Ihrem System haben, wird der Aufruf von -Ga mehrdeutig. Möchten Sie, dass der Benutzer nur eine Gruppe a hat? Rufen Sie -a und -G an? Ist "a" dann ein Wert für -G? Wo ist der Rest des Wertes (bis -G)? Es ist auch üblich, dass jede Einzelbuchstabenoption vor jeder anderen Einzelbuchstabenoption stehen kann. also tat -xy == -yz. Dies ist jedoch nicht eindeutig, wenn eine der Optionen entweder einen einzelnen Wert wie VALUE oder viele Werte wie VAL1, Val2, val4 usw. Annehmen kann.

Um den Befehl FAILSAFE auszuführen und für alle Eingaben ordnungsgemäß zu funktionieren, müssen Sie -a von -G trennen

Von man usermod:

Name

usermod - Ändern Sie ein Benutzerkonto

Zusammenfassung

usermod [Optionen] LOGIN

Beschreibung

Der Befehl usermod ändert die Systemkontodateien so, dass sie die in der Befehlszeile angegebenen Änderungen widerspiegeln.

Optionen

Folgende Optionen gelten für den Befehl usermod :

  • -a, --anhängen

    Fügen Sie den Benutzer zu den zusätzlichen Gruppen hinzu . Nur mit der Option -G verwenden .

  • ...

  • -G, --groups GROUP1 [, GROUP2, ... [, GROUPN]]]

    Eine Liste zusätzlicher Gruppen, zu denen der Benutzer auch gehört. Jede Gruppe wird durch ein Komma von der nächsten getrennt, ohne dazwischenliegende Leerzeichen. Die Gruppen unterliegen denselben Einschränkungen wie die mit der Option -g angegebene Gruppe .

    Wenn der Benutzer derzeit 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 , mit der der Benutzer an die aktuelle zusätzliche Gruppenliste angehängt wird.

  • ...

Ярослав Рахматуллин
quelle
Könnte helfen zu erklären, warum das Aufteilen der Optionen funktionieren würde und welche Optionen sie sind.
Geselle Geek
@JourneymanGeek: Fertig! läuft ...
Tamara Wijsman
Superuser sollten wissen, wie man man, imho ...
Ярослав Рахматуллин
@ ЯрославРахматуллин, Superuser sollten in der Tat. Die meisten Fragen werden jedoch von "Nicht-Superusern" gestellt und von "Superusern" beantwortet . Jemand, der neu in Linux ist, hat keinen Grund, den Befehl man zu kennen. In jedem Fall ist der Befehl, den Sie gegeben haben, der gleiche wie der vom OP ausgeführte. Ihre Antwort erklärt nicht, warum er bei ihr nicht funktioniert hat. Zumindest auf meinem System macht das Aufteilen der Optionen keinen Unterschied.
Terdon
Zunächst einmal können Sie den Namen sudo adduser sudo adduser name2 nicht ausführen, da dies eine ungültige Syntax für useradd ist . useradd verwendet ein Benutzernamenargument. Um zwei Benutzer hinzuzufügen, müssen Sie den Befehl zweimal ausführen. IE useradd arne; useradd kari. Dann können Sie Kari zur Arnes-Gruppe hinzufügen und umgekehrt. Ich werde etwas mehr Geduld entwickeln, nachdem ich einige dieser Fragen gesehen und richtig beantwortet habe. versprechen!
Ярослав Рахматуллин
0

Wenn Sie die Befehle genau so ausgeführt haben, wie Sie es in Ihrer Frage gezeigt haben, haben Sie nicht den Benutzer Keith erstellt, sondern nur den Benutzer John. Um Befehle nacheinander in der Befehlszeile auszuführen, müssen Sie sie mit ;oder trennen &&. Andernfalls wird nur der erste Befehl ausgeführt:

sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.

Wenn Sie tun sie richtig ausführen, um Großbuchstaben vorsichtig sein. In Ihrer Frage erwähnen Sie sowohl "John" als auch "John". Das sollte funktionieren:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john
Terdon
quelle
0

Sie können die Konfigurationsdateien auch manuell bearbeiten:

sudo nano /etc/password
sudo nano /etc/group

Weisen Sie die ID und andere Felder zu.

KakashiSan
quelle