Kommando in PATH wird mit sudo nicht gefunden
Nils Kassube
kassube at gmx.net
Don Jul 26 16:08:28 BST 2007
Christoph Bier wrote:
> ich habe hier ein merkwürdiges Problem, das auch nur auf meinem
> Bürorechner auftritt; meine Rechner zu Hause (Desktop, Laptop) --
> alle drei Rechner benutzen das gleiche Home-Verzeichnis -- haben das
> Problem nicht. Bestimmte Befehle, die ich mit sudo aufrufen möchte,
> werden nicht gefunden, obwohl sie in PATH liegen (Umbrüche in der
> PATH-Ausgabe händisch eingefügt):
>
> chris at bzb:~$ echo $PATH
> /home/chris/adabas/bin:/home/chris/adabas/pgm:/home/chris/bin:
> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
> /usr/bin/X11:/usr/games:/opt/xindy-2.2/bin:/home/chris/bin:
> /usr/local/texlive/2007/bin/i386-linux
> chris at bzb:~$ sudo echo $PATH
> Password:
> /home/chris/adabas/bin:/home/chris/adabas/pgm:/home/chris/bin:
> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
> /usr/bin/X11:/usr/games:/opt/xindy-2.2/bin:/home/chris/bin:
> /usr/local/texlive/2007/bin/i386-linux
Das ist das gleiche, weil die shell die Variable $PATH erweitert, bevor
sudo aufgerufen wird, also beidemal der Inhalt von $PATH für User chris.
Und wie du vermutlich siehst, ist beidemal /home/chris/bin vorhanden. Das
wäre für root absolut ungeeignet. Probier mal
sudo sh -c "echo $PATH"
um den Pfad für root zu sehen.
> chris at bzb:~$ which texhash
> /usr/local/texlive/2007/bin/i386-linux/texhash
> chris at bzb:~$ sudo texhash
> sudo: texhash: command not found
>
> chris at bzb:~$ texhash
> funktioniert problemlos, nur werden dann die systemweiten
> TeX-Verzeichnisse nicht erfasst.
>
> Nicht dass die TeXLive-Installation ganz frisch wäre, aber ich
> wollte trotzdem mal hash anwenden. Doch auch das funktioniert nicht
> mit sudo, obwohl hash doch eine Shell-Funktion ist, oder etwa nicht?
Probier doch mal dieses:
sudo /usr/local/texlive/2007/bin/i386-linux/texhash
> chris at bzb:~$ sudo hash /usr/local/texlive/2007/bin/i386-linux/
> sudo: hash: command not found
Hier versucht sudo ein Programm hash auszuführen. Dieses Programm gibt es
aber nicht, es ist ja ein Shellinterner Befehl.
Nils