[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Berechtigung bei sudo echo foo > bar



Am Donnerstag, 27. Oktober 2005 13:54 schrieb Frank Küster:
> Nein, ich meine eher "sudo sh -c 'echo foo > bar'".  Wobei ich mir
> gerne erklären lasse, warum meine Variante nicht funktioniert:
>
> $ sudo 'echo foo > /etc/bar'
> sudo: echo foo > /etc/bar: command not found
>
> (und nein, mit /bin/echo geht es auch nicht).

Das liegt vermutlich daran, dass sudo seinen ersten Parameter als Namen 
einer ausführbaren Datei interpretiert. Bei dem Befehl

  sudo 'echo foo > bar'

würde also der gesamte String 'echo foo > bar' (ohne die 
Anführungszeichen) als Name einer ausführbaren Datei angesehen, die 
aber nicht gefunden wird (--> command not found).

Bei dem Befehl

  sudo sh -c 'echo foo > bar'

hingegen werden an sudo drei Parameter übergeben, von denen der erste 
(hier "sh") als Name der auszuführenden Datei angesehen wird (wobei 
sudo offenbar schlau genug ist, im PATH nachzugucken), und die beiden 
anderen ("-c" und "echo foo > bar") an sh als Parameter durchgereicht 
werden. sh ist nun im Gegensatz zu sudo in der Lage, den übergebenen 
String "echo foo > bar" nach den Regeln der sh-Syntax zu parsen und 
geht wie erwartet damit um.

Bitte korrigiert mich, wenn da was nicht stimmt.

Viele Grüße, Ole



Reply to: