Wie füge ich einem Benutzer eine Gruppe hinzu, ohne eine andere Gruppe in suse linux mit usermod zu entfernen?

7

Ich habe einen Benutzer, der eine primäre Gruppe und eine sekundäre Gruppe hat, wie:

[ testuser Welcome ~ ]$ id

uid=2000(testuser) gid=2000(testuser) groups=2000(testuser),27(sudo),2001(testgroup)

Primärgruppe ist testuser& Sekundärgruppe ist testgroup.

Jetzt versuche ich, diesem Benutzer mit dem folgenden Befehl eine weitere sekundäre Gruppe testgroup2 hinzuzufügen

usermod -G testgroup2 testuser

aber es entfernte die vorherige sekundäre Gruppe ( testgroup) und fügte die neue hinzu. Ich brauche, dass die vorherige sekundäre Gruppe nicht entfernt und die neue sekundäre Gruppe hinzugefügt wird.

Ich habe in Ubuntu gesehen, dass es eine Option gibt, mit -ader die Gruppe an den Benutzer angehängt werden kann, ohne die andere Gruppe zu entfernen.

Bitte lassen Sie mich wissen, ob es auch unter suse linux möglich ist oder nicht ...?

Danke !!!

joy87
quelle
Er ist auch in der sekundären Gruppe sudo.
Strg-Alt-Delor
Die Version von usermod in opensuse 13.1 bietet die -aOption. Welche Version hast du?
Mark Plotnick
Welche Version von suse oder opensuse verwenden Sie?
Mark Plotnick
SUSE Linux Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 3
joy87

Antworten:

4

In SLES11 SP3 unterstützt der usermodBefehl (von pwdutils 3.2.15) eine -AOption, die das tut, was Sie wollen:

-A, --add-to-group group,...
    With this option a list of  groups can be specified, which the user should
    become a member of. Each group is separated from the next one only by a comma,
    without whitespace.

In SLES12 und OpenSUSE 13.1 unterstützt der usermodBefehl (aus den am häufigsten verwendeten Shadow-Utils 4.1.5.1) eine -aOption, die in Verbindung mit der -GOption verwendet werden kann:

-a, --append
    Add the user to the supplemental group(s). Use only with -G option.

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
    A list of supplementary groups which the user is also a member of. Each group
    is separated from the next by a comma, with no intervening whitespace. 

    If the user is currently a member of a group which is not listed, the user
    will be removed from the group. This behaviour can be changed via the -a option,
    which appends the user to the current supplementary group list.
Mark Plotnick
quelle
Die zweite Option usermod -G groupName -a userNameist derzeit die richtige in Arch
Chris Magnuson
3

Wenn Sie usermodkeine Möglichkeit zum Anhängen haben (nicht einmal -A), versuchen Sie, die aktuelle Gruppe von Gruppen anzuheften:

usermod -G "$(groups testuser | sed 's/.*: //;s/ /,/g'),testgroup2" testuser
muru
quelle
CentOS 6.6 macht nichts mit usermod -a -G squid testuser. Es gibt die -a, --appendOption in der Manpage an, aber als ich den Befehl ausführte, gab ich an, dass er die Antwort zurückgab, die no changeser getan hatte. Ihr Befehl hat jedoch funktioniert, bevor ich versucht habe, das -a nach dem Gruppennamen und vor dem Benutzernamen zu setzen.
BeowulfNode42
1

Mit diesem Befehl können Sie eine Liste aller Gruppen angeben und die alten ersetzen.

 -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
           A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g option.

Verwenden Sie stattdessen adduser:

adduser [options] user group

adduser kann verwendet werden, um einen Benutzer hinzuzufügen, aber auch, um einen Benutzer zu einer Gruppe hinzuzufügen.


oder wie @mark plotnick hervorhebt, verwenden Sie die -aOption vonusermod

Strg-Alt-Delor
quelle
Vielen Dank für Ihre Antwort. Aber eine Option ist unter suse linux nicht verfügbar. Gibt es eine andere Option, um die Gruppe anzuhängen, ohne die alte Gruppe zu entfernen?
joy87