[linux-l] Logik von "Syntax-Fehler" in Bash
Michael Gisbers
m.gisbers at linux-schmie.de
Fr Dez 27 19:18:05 CET 2013
On Fri, 27 Dec 2013 16:17:54 +0100
Hauke Laging <mailinglisten at hauke-laging.de> wrote:
> Am Fr 27.12.2013, 15:32:44 schrieb Hasko Bern:
> > Also beide folgenden Ansätze funktionieren:
> >
> > $ sudo bash -c 'for i in 1 2 3 4 5; do hdparm -tT /dev/sda; done'
>
> > - Der Befehl hdparm ist im Suchpfad eines "normalen" Benutzers
>
> Meine Variante hat den Vorteil, dass sowieso der PATH von root
> genommen wird, weil bash den beim Start entsprechend setzt.
Hallo Hauke,
da muss ich Dir leider widersprechen. Solange Du keine Login-Shell
nutzt (bash -l) wird der Pfad des Benutzers behalten, da die
Profilscripte nicht abgearbeitet werden sondern nur die ~/.bashrc (man
bash -> INVOCATION).
Das mag bei einigen Distributionen klappen, die in der ~/.bashrc die
PATH - Variable setzen, aber ansonsten geht das schief:
# Test des lokalen Pfads:
mgisbers at jupiter ~ $ echo $PATH
/home/mgisbers/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/mgisbers/.gem/ruby/2.0.0/bin
# Test mit sudo:
mgisbers at jupiter ~ $ sudo bash -c 'echo $PATH'
/home/mgisbers/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/mgisbers/.gem/ruby/2.0.0/bin
# Test mit sudo und Login-Shell:
mgisbers at jupiter ~ $ sudo bash -l -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
Wie zu sehen wird erst mit dem Parameter '-l' der Pfad auf den für den
User root gültigen Pfad umgesetzt.
Und das gilt nicht nur für die Variable PATH, sondern auch für andere
Parameter, die über die profile-Skripte gesteuert werden.
--
Mit freundlichem Gruß,
Linux-Schmie.de
Michael Gisbers
Neukölner Str. 94
46147 Oberhausen
Telefon: +49 208 628 950
Telefax: +49 208 628 951
Mobil: +49 173 510 68 22
http://linux-schmie.de
USt-IdNr. DE 189 020 052
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 198 bytes
Beschreibung: nicht verfügbar
URL : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20131227/a3a1c2ff/attachment.sig>
Mehr Informationen über die Mailingliste linux-l