Wenn Sie sich zuerst das 500 500
ansehen, wird tar
der Besitzer und die Gruppe (unter anderem) aus dem Archiv wiederhergestellt, auf dem System, auf dem das Archiv erstellt wurde: Ich vermute, dass das Installationsprogramm dies tut und ob der wiederhergestellte Benutzer oder die wiederhergestellte Gruppe dies nicht tut Wenn Ihr System vorhanden ist, wird der numerische Wert angezeigt.
Wenn PATH
ich mir jetzt das anschaue, habe ich dies auf Ubuntu reproduziert, und es scheint, als würde sich das sudo
ändernPATH
: In Ihrem Befehl wurde sudo echo $PATH
die PATH
Variable vor dem Aufruf in der ursprünglichen Shell erweitert sudo
. Es gibt eine Datei /etc/sudoers
mit einem Eintrag "defaults secure_path="..."
, und dies scheint, was verwendet wird.
Wenn Sie verwenden, erhalten sudo sh -c 'echo $PATH'
Sie eine bessere Vorstellung von der PATH
Verwendung. Beachten Sie, dass ich absichtlich sh
anstelle von bash
verwendet habe, um einige der Initialisierungsdateien zu umgehen, was die Dinge ändern kann, obwohl sh
es natürlich einige eigene Dateien gibt .
Auf Ubuntu enthält die secure_path
Zeile zwar /user/local/bin
, aber CentOS kann sich unterscheiden (beide sind von Debian abgeleitet, können aber laut man sudoers
SELinux einige Einträge überschreiben). Soweit ich sehen kann, haben Sie mindestens vier Möglichkeiten: -
- Ändern Sie
secure_path
den Eintrag so, dass er / usr / local / bin enthält. - Fügen Sie den Link in eines der in definierten Verzeichnisse ein
secure_path
. - Verwenden Sie
su -c " "
stattsudo
. - Verwenden Sie
sudo -s
diese Option, um ein Stammverzeichnisbash
mit derselbenPATH
Initialisierung wie die ursprüngliche Shell zu erhalten. Rufen Sie dann Ihre ausführbare Datei auf und beenden Sie sie anschließend.
Ich habe hier auch viele Diskussionen und andere mögliche Lösungen gefunden .