Ist ein Neustart erforderlich, um die Berechtigungen nach dem Hinzufügen eines Benutzers zu einer neuen Gruppe zu aktualisieren?

26

Auf dem Ubuntu-Server ist mir mehrmals aufgefallen, dass dieser Benutzer nach dem Hinzufügen eines Benutzers zu einer Gruppe erst nach einem Neustart des Systems über Gruppenberechtigungen verfügt. Beispielsweise:

Der Benutzer 'hudson' benötigt die Berechtigung zum Lesen des Verzeichnisses 'root: shadow / etc / shadow'. Deshalb füge ich der Schattengruppe hudson hinzu. Hudson kann immer noch nicht lesen. Also, ich 'sudo shutdown -h -r now' und wenn das System wieder hochfährt, kann Benutzer Hudson lesen.

Ist ein Neustart erforderlich oder gibt es eine bessere Möglichkeit, Berechtigungen anzuwenden, nachdem der Benutzer der Gruppe hinzugefügt wurde?

Michael Prescott
quelle
Zur späteren Bezugnahme habe ich unten eine aktuelle Lösung hinzugefügt. Ich war erstaunt, dass dies ein Problem war. Hoffentlich hilft das.
TryTryAgain

Antworten:

25

Ich suchte nach einer Lösung, stieß auf diesen Beitrag und fand später einen!

Ich dachte, ich würde tatsächlich eine Lösung anbieten, von der andere profitieren können. An- und Abmelden ist also 1995.

Genommen von:

https://arkaitzj.wordpress.com/2010/03/08/linux-add-user-to-a-group-without-logout/

Wenn Sie also Berechtigungen für die cdromGruppe benötigen, haben Sie Ihren Benutzer folgendermaßen hinzugefügt:

newgrp cdrom 

beispielsweise

Die Schritte wären also:

#adduser my_user cdrom

und dann

$newgrp cdrom

Ich habe bestätigt, dass es funktioniert.

Eine einfache $groupsÜberprüfung über die CLI zeigt, dass sich der Benutzer in der Gruppe befindet. Und eine schnelle Ausführung mit den erforderlichen Berechtigungen dieser Gruppe funktioniert.

Keine Notwendigkeit, Ihre Fenster zu töten und sich anzumelden und abzumelden! Hoffe das hilft anderen!

Zusätzliche Informationen (basierend auf dem hilfreichen Kommentar von jytou): "[Diese] Lösung funktioniert nur für die aktuell geöffnete Shell. Wenn Sie eine andere Shell geöffnet haben, müssen Sie denselben Befehl verwenden, um die Änderungen zu berücksichtigen."

Versuchen Sie es erneut
quelle
1
Das ist toll, es funktioniert wirklich !!! : D
dadexix86
3
Beachten Sie, dass die TryTryAgain-Lösung nur für die aktuell geöffnete Shell funktioniert. Wenn Sie eine andere Shell geöffnet haben, müssen Sie denselben Befehl verwenden, um die Änderungen zu berücksichtigen.
Jytou
Wie auch immer, das für die laufende X-Sitzung zu tun?
Artfulrobot
@artfulrobot sorry, ich bin mir nicht ganz sicher was du meinst. Möglicherweise möchten Sie eine neue Frage öffnen und auf diesen Beitrag und diese Lösung verweisen, um die bestmögliche Hilfe zu erhalten.
TryTryAgain
19

Wenn Sie einen Benutzer zu einer neuen Gruppe hinzufügen, muss sich der Benutzer abmelden und erneut anmelden, damit die Änderungen wirksam werden. Dies kann zwar durch einen Neustart erreicht werden, sollte jedoch nicht erforderlich sein.

Scott Pack
quelle
Wie melde ich einen Benutzer ab, der bei der Installation eines Pakets von aptitude erstellt wurde?
Michael Prescott
Welches Paket erstellt der hudsonBenutzer?
womble
Versuchen Sie, den Dienst zu beenden und zu starten, wie Justin antwortete.
Scott Pack
Das ist was ich mache. Einfach abmelden und wieder anmelden.
Trent Scott
Sie müssen sich zum Glück nicht aus- und wieder einloggen. Ich habe unten eine funktionierende Lösung angeboten. Getestet und HAPPY!
TryTryAgain
8

Das Hinzufügen eines Benutzers zu einer Gruppe hat keine Auswirkungen auf aktuell angemeldete Benutzer.

Im Fall eines Daemons müssen Sie diesen neu starten, damit neue Gruppen angewendet werden.

Darüber hinaus funktioniert ein Neustart des Dämons mithilfe einer Option im Dämon selbst nicht, da dies die aktuelle Umgebung erbt.

Der einfachste Weg, es zum Laufen zu bringen, besteht darin, den Daemon vollständig zu stoppen und erneut zu starten, wie in ..

/etc/init.d/foo stop ; /etc/init.d/foo start
Justin
quelle
4

das ist viel einfacher, Sie können Ihre aktuelle Zugriffsebene überprüfen, indem Sie Folgendes eingeben:

id

Um deine Gruppen neu zu laden, brauchst du nur:

su - $USER

Überprüfen Sie danach die Zugriffsebene erneut:

id

und Sie werden sehen, dass die neue Gruppe jetzt aktiv ist.

wikrie
quelle
1

Es gibt einen anderen Fehlermodus, der hier ebenfalls angesprochen werden sollte.

Wenn der Administrator aktualisiert hat, /etc/groupaber keine Aktualisierung durchführen konnte /etc/gshadow(auf Systemen mit diesem Setup), werden Sie durch das Abmelden und erneutes Anmelden nicht der neuen Gruppe zugewiesen.

Verwirrend ist , groupswerden Sie die reale, aktuelle Situation zeigen, während idfälschlicherweise Ausgabe drucken , die , dass Sie zeigt sind richtig ein Mitglied der Gruppe.

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

Ich kann es nicht verwenden, newgrpda es nach einem Passwort fragt und ich kein Passwort habe, sondern nur die SSH-Authentifizierung mit öffentlichem Schlüssel.

Die Lösung wäre, dass der Administrator die manuelle Bearbeitung von rückgängig macht /etc/groupsund sie dann erneut durchführt sudo gpasswd -a tripleee adm. oder alternativ grpconvzum Zusammenführen der Änderungen (die ich unter https://serverfault.com/a/389719/98333 abgerufen habe )

Tripleee
quelle
Es stellte sich heraus, dass das eigentliche Problem darin bestand, dass ich eine SSH-Mastersitzung wiederverwendete . Das Trennen der Verbindung durch Entfernen des ControlPath-Sockets und erneutes Anmelden löste das Problem.
Tripleee