Ich habe ein bin
Verzeichnis in meinem Home-Ordner erstellt, in dem ich alle meine Skripte ablege. Dann habe ich in meiner .bashrc Folgendes hinzugefügt:
export PATH=$PATH:/home/myusername/bin
So konnte ich von überall auf Dateien zugreifen, die ich dort abgelegt hatte. Einige der Skripte müssen jedoch als root ausgeführt werden. Also dachte ich, ich könnte meine .bashrc-Datei als root verknüpfen (wie in /root/.bashrc auf /home/myusername/.bashrc verweist, weiß nicht, ob dies klug ist), wenn ich ein Skript als root ausführen muss Ich kann einfach tun:
sudo program_that_requires_root
Aber dann bekomme ich ein:
sudo: program_that_requires_root: command not found
Wenn ich mich als root anmelde und das Programm ausführe, funktioniert es jedoch einwandfrei. Was ist also der richtige Weg, um das zu erreichen, was ich will?
/etc/sudoers
und suchen Sie diese Zeile: Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
(Pfade können variieren) - Wenn Sie Ihren Benutzerpfad hinzufügen bin
, funktioniert dies. (Vielleicht wird diese Lösung aus anderen Gründen nicht empfohlen; ich weiß es nicht.) Oh, in der erwähnten Datei heißt es, dass Sie sie nicht ändern sollten, aber ich habe es getan, und es funktioniert großartig, zumindest in Bezug auf das, was ich habe versucht zu erreichen (mit dem gleichen Problem wie Sie).
sudo
wahrscheinlichsecure_path
anstelle von Ihnen$PATH
. Führen Siesudo -V
als root (z. B.sudo sudo -V
) aus und suchen Sie nach Zeilen, die enthaltenPATH
.