PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Syntax von "su" ("su" spinnt)



suck
19.06.06, 23:09
Moje,

Mein "su" spinnt ein wenig. Schaut euch das mal an:


#
# su username -lc tar
tar: You must specify one of the `-Acdtrux' options
Try `tar --help' or `tar --usage' for more information.
#
#
# su -lc tar username
/bin/bash: tar: command not found
#
Nur bei der ersten Variante wird die "-l"-Option ausgewertet und daher auch die $HOME/.profile gelesen. Dort wird nämlich $PATH so angepasst, dass man "tar" auch findet. Mit "ls" klappt es in beiden Fällen.

Mein Problem ist, dass ich zu der "su" Version aus dem coreutils-Paket kompatibel sein will, diese (im Gegensatz zum jetzigem "su" aus dem shadow-Paket) versteht die "-l"-Option aber leider gar nicht. Am liebsten würde ich mit "su - username" arbeiten, was ja eigentlich das selbe ist wie "-l" und bei beiden Versionen funktionieren müsste. Damit schaffe ich es aber überhaupt nicht das die $HOME/.profile gelesen wird (also in Kombination mit dem "-c tar", ohne geht's). Warum auch immer.

PS: Eine mit der ".profile" identische ".bashrc" gibt es auch..

suck
20.06.06, 00:01
Hab nen Workaround gefunden. Diese Syntax verstehen beide "su":
su - username -c "sh -lc tar"Meine Frage von eben steht aber schon rein interessehalber immernoch.

marcdevil
20.06.06, 08:24
# su username -lc tar
tar: You must specify one of the `-Acdtrux' options
Try `tar --help' or `tar --usage' for more information.
#

tar erwartet eine option.
nur tar reicht nicht

su username -lc "tar -czf backup.tgz /home"


# su -lc tar username
/bin/bash: tar: command not found
#

su -lc "/usr/bin/tar -czf backup.tgz /home" username
???


Hab nen Workaround gefunden. Diese Syntax verstehen beide "su":
su - username -c "sh -lc tar"
su - ist mir geläufiger als su -l

suck
20.06.06, 14:49
Hast du meinen Beitrag zu Ende gelesen? Einzig interessant ist, ob "tar" gefunden wird (dazu muss die .profile gelesen werden - dort wird der Pfad gesetzt)! Wie tar funktioniert weiss ich selbstverständlich!