Wann werden die Gruppenberechtigungen eines Benutzers aktiv, wenn ich ihn zu einer neuen Gruppe hinzufüge und es sich um einen /nologin-Benutzer handelt?

Wann werden die Gruppenberechtigungen eines Benutzers aktiv, wenn ich ihn zu einer neuen Gruppe hinzufüge und es sich um einen /nologin-Benutzer handelt?

Ich habe ein Service-Level-Konto zum Betreiben meines Webservers und für diesen Benutzer ist eingerichtet /sbin/nologin.

Wenn Sie einen Benutzer zu einer Gruppe hinzufügen, müssen Sie sich normalerweise abmelden und erneut anmelden, um die neuen Gruppenberechtigungen zu verwenden.

Ich möchte diesen Benutzer zu einer anderen Gruppe hinzufügen, um einige seiner Berechtigungen zu erweitern. Da sich mein Webserver-Benutzer jedoch nie anmeldet, stellt sich die Frage, wann oder wie der Benutzer Zugriff auf die neuen Gruppenberechtigungen erhält?

Antwort1

Die Gruppen des Prozesses werden von dem Programm festgelegt, das von root zum Zielbenutzer wechselt, bevor das Programm des Prozesses ausgeführt wird. Wenn sich ein Benutzer anmeldet, ist das Programm, das den Benutzer ändert, das Anmeldeprogramm ( login, su, sshd, …) und das Programm des Prozesses ist die Shell des Benutzers. Für einen Daemon, der unter dem Systembenutzer ausgeführt wird, kann das Programm, das den Benutzer ändert, suoder ein anderes Tool wie Debians seinstart-stop-daemon. Fügt dem Prozess beispielsweise start-stop-daemonimmer die Zusatzgruppen hinzu. Das Benutzeränderungsprogramm muss über eine Logik verfügen, um sowohl die primäre Gruppe aus der Benutzerdatenbank als auch die Zusatzgruppe aus der Gruppendatenbank festzulegen.

Antwort2

Unter CentOS 6 nscdkönnte es laufen. Wenn Sie die Gruppeneigentümerschaft nicht mit einem hochrangigen Befehl (wie usermod) geändert haben, müssen Sie sicherstellen, dass es ausgeführt wird, grpconvdamit /etc/gshadow ebenfalls aktualisiert wird. Wenn nscdes ausgeführt wird, fügen Sie hinzu nscd -i group, um den lokalen Gruppencache ungültig zu machen. Wenn Sie die primäre GID geändert haben , führen Sie aus nscd -i passwd.

Überprüfen Sie das Ergebnis mit id -a $ACCOUNT.

Starten Sie danach Ihren Dienst neu.

Antwort3

Ich schlage su - ; /etc/init.d/NAME stop; /etc/init.d/NAME start; vor.

„/etc/init.d/NAME restart“ reicht möglicherweise nicht aus.

verwandte Informationen