Kommando in PATH wird mit sudo nicht gefunden

Christoph Bier christoph.bier at web.de
Don Jul 26 17:41:25 BST 2007


Nils Kassube schrieb am 26.07.2007 17:08:

> 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.

Auf meinen Rechnern zu Hause habe ich die TeXLive-Installation auch
leicht modifiziert durchgeführt. Ich hatte die Option gewählt, Links
für die Binaries in Systemverzeichnissen (/usr/local/bin) anzulegen,
wie ich gerade wieder in meinen Aufzeichnungen gefunden habe. Das
Dunkel lichtet sich.

>> 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
[...]
>> chris at bzb:~$ sudo echo $PATH
[...]
> 
> 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

Danke! sudo ist mir nach wie vor fremd, weshalb es auf jedem Rechner
auch noch Root gibt. Aber mittlerweile schätze ich den Komfort von
sudo, weshalb ich von »su -« wegkommen will.

> sudo sh -c "echo $PATH"
> 
> um den Pfad für root zu sehen.

Ulfs Beitrag berücksichtigend:

chris at bzb:~$ sudo sh -c 'echo $PATH'
Password:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/sbin:/bin:/usr/X11R6/bin

Treffer! Aber wie kommt dann das zustande?:

$ su -
Password:
root at bzb:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
/bin:/usr/bin/X11:/usr/local/texlive/2007/bin/i386-linux

>> 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

Funktioniert, wie ich inzwischen auch erwartet hatte, weil doch ein
Pfad-Problem.

Vielen Dank für die Aufklärung!

>> 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.

Und wie komme ich mit sudo an Shell-Funktionen?

Beste Grüße
Christoph
-- 
+++ Typografie-Regeln: http://zvisionwelt.de/downloads.html (1.6)