Zusätzliche Gruppenmitgliedschaften aktualisieren, ohne sich erneut anzumelden?

12

Nach meinem Verständnis speichert eine Linux-Sitzung ihre Gruppenmitgliedschaften beim Anmelden zwischen. Wenn dann eine neue Gruppenmitgliedschaft hinzugefügt wird (z. B. mit adduser someuser somegroup), muss sich der Benutzer abmelden und erneut anmelden, um die neue Mitgliedschaft nutzen zu können.

Meine Frage ist: Gibt es eine Möglichkeit, Gruppenmitgliedschaften während des Prozesses zu aktualisieren, ohne sich erneut anzumelden, den aktuellen Prozess zu beenden oder einen neuen Prozess zu starten?

Avdi
quelle

Antworten:

9

Sie können von Ihrer Sitzung aus eine neue Anmeldung starten

$ su - your_login

Es hat keinen Einfluss auf Ihren laufenden Prozess. Wenn Sie Xserver verwenden, können Sie xterm starten und diesen Befehl eingeben (betrifft nur diese Terminalsitzung). Die einzige Möglichkeit, ihn dauerhaft zu machen, besteht darin, die Sitzung zu beenden und erneut zu starten

Sumar
quelle
Wenn Sie nur die Authentifizierung mit öffentlichem Schlüssel für Ihren Server zulassen, müssen Sie den geheimen Schlüssel importieren.
Cyril Duchon-Doris
4

Das glaube ich nicht. Sie können den newgrpBefehl jedoch verwenden , um eine neue Shell mit der neuen Gruppe zu erzeugen . Dies ist nicht dauerhaft.

newgrp superawesomegroupname

Sie müssen Ihre Benutzer ab und zu wieder anmelden.

Joseph Kern
quelle
1
+1 funktioniert ohne Passwort / Authentifizierung im Gegensatz zusu
Cyril Duchon-Doris
2

Andere haben " su - $USER" und " newgrp" erwähnt, und ich dachte, ich sollte erwähnen, dass Sie sich auch " sg" ansehen sollten .

Teddy
quelle
1

Sie können gpasswdfür sofortige Änderung verwenden:

gpasswd -a someuser somegroup

Es ist nicht erforderlich, eine neue Shell zu erstellen oder sich neu anzumelden. Überprüfen Sie anschließend die Gruppenmitgliedschaft mit getent:

getent group somegroup
Tombart
quelle
Sie erstellen die Gruppe und suchen diese Gruppe. Dies hat nichts mit der besprochenen Frage zu tun - die Änderung ist in Ihrer aktuellen Sitzung nicht wirksam.
Str.
1

Du kannst tun:

exec su -l $USER

Dadurch wird die Gruppenliste implizit aktualisiert, ohne dass das Terminal verlassen werden muss.

Arjen P. De Vries
quelle
0

Was ist damit (obwohl es nur die Anforderung erfüllt, dass Sie sich nicht erneut anmelden müssen)

exec /bin/bash -l

Das Flag -l würde eine neue Anmeldeshell annehmen und der Exec würde die aktuelle Shell durch diese neue ersetzen. Übrigens, tippe den Namen der Shell nicht falsch ein :-)

Ein Problem bei der Verwendung von newgrp und su, wie zuvor vorgeschlagen, besteht darin, dass eine neue Unter-Shell erstellt wird. Ja, Sie können ihnen auch einen exec-Befehl voranstellen.

mdpc
quelle