Ich habe ein Szenario, in dem ich zu einem anderen Benutzer wechseln muss und danach den Linux-Befehl ausführen muss.
Mein Befehl ist so etwas
( echo myPassword | sudo -S su hduser ) && bash /usr/local/hadoop/sbin/start-dfs.sh
aber mit diesem Befehl wechsle ich zum Benutzer und der nächste Befehl wurde beim vorherigen Benutzer ausgelöst.
Gibt es welche, die ich mit einem Shell-Skript erreichen kann?
shell-script
ubuntu
Akash Sethi
quelle
quelle
Antworten:
Versuchen.
siehe man sudo :
quelle
... bash -c 'bash file.sh'
? Könntest du es nicht so schreiben... bash file.sh
?Mit können
su user -c "sh /path/command.sh"
Sie einen Befehl als Benutzer ausführen .Ich habe mit diesem Befehl getestet:
Danach
watch -n
lief der als Foobar.Ich denke, Ihr Befehl sollte so funktionieren:
quelle
Hier eine kürzere Version der Antwort von αғsнιη :
quelle
Sie könnten dieses versuchen:
quelle
Error changing to home directory /home/foobar: No such file or directory
. Ich habe es erstellt, aber vielleicht gibt es eine bessere Lösung ohne Home-Ordner