
Zuletzt war Ubuntu 17.04 installiert und ich konnte den Befehl sudo nautilus nicht ausführen, da ein Fehler auftrat. Dann habe ich bei Google gesucht und sudo -E nautilus ausprobiert und es hat funktioniert. Was ist der Unterschied zwischen beiden?
Antwort1
Dersudo
manpagebeschreibt -E
wie folgt:
Gibt der Sicherheitsrichtlinie an, dass der Benutzer seine vorhandenen Umgebungsvariablen beibehalten möchte. Die Sicherheitsrichtlinie gibt möglicherweise einen Fehler zurück, wenn der Benutzer nicht über die Berechtigung zum Beibehalten der Umgebung verfügt.
Bereinigt normalerweise sudo
die Umgebung, die es dem ausgeführten Befehl bereitstellt; -E
deaktiviert diese (sofern der Benutzer dazu berechtigt ist). Sie können den Unterschied sehen, indem Sie die Ausgaben von sudo env
und vergleichen sudo -E env
.
Nautilus benötigt eine Reihe von Umgebungsvariablen, um die benötigten Informationen zu finden oder auf andere Prozesse zuzugreifen, mit denen es kommunizieren muss. Die Standardbereinigung verhindert, dass dies funktioniert.