2017-06-07 1 views
0

Wenn ichExport NUTZERNAME = root in zsh gibt die Erlaubnis Fehler

export USERNAME=root 

in zsh führen Sie es mir die folgende Fehlermeldung gibt.

zsh: failed to change group ID: operation not permitted 

Irgendeine Idee warum?

PS: Ich habe dies ursprünglich nicht manuell ausgeführt, aber ich stieß darauf, wenn mein vim-dispatch Plugin diesen Fehler beim Ausführen eines Befehls in vim warf. Danach konnte ich dies reproduzieren, indem ich es einfach in einer Shell von zsh laufen ließ.

Antwort

1

Die parameter USERNAME entspricht der tatsächlichen Benutzer-ID des Shell-Prozesses. Durch das Ändern wird auch die echte Benutzer-ID geändert, wodurch die Berechtigungen des laufenden Shell-Prozesses effektiv geändert werden. Dies ist natürlich nur möglich, wenn der ursprüngliche Benutzer über ausreichende Berechtigungen verfügt. In den meisten Fällen bedeutet dies wahrscheinlich, dass nur rootUSERNAME zuweisen darf, während alle anderen Konten nicht zulässig sind.

Betrachten wir zum Beispiel diese Shell-Sitzung:

[email protected]# echo $USERNAME $UID $EUID $GID $EGID 
root 0 0 0 0 
[email protected]# USERNAME=adaephon 
[email protected]% echo $USERNAME $UID $EUID $GID $EGID 
adaephon 1000 1000 1000 1000 
[email protected]% USERNAME=root 
zsh: failed to change group ID: operation not permitted 
[email protected]% echo $USERNAME $UID $EUID $GID $EGID 
adaephon 1000 1000 1000 1000 

Angefangen als Wurzel, kann ich einfach meine Privilegien zu meinem normalen Benutzerkonto löschen. Aber ich kann nicht zurück zu root als adaephon fehlt die notwendigen Privilegien.

Verwandte Themen