Ich versuche, eine Standardaktivität auf einem System zu automatisieren, auf dem ich keinen Root-Zugriff habe. Der Administrator der Systeme hat mir die Berechtigung erteilt, einen sudo su - 'user'
Befehl auszuführen , und nur diesen Befehl. Ich kann kein -c
Argument hinzufügen oder sudo
werde scheitern.
Mein Skript muss mit meinen Berechtigungen beginnen und in der Mitte der Änderung mit den Berechtigungen des Benutzers ausgeführt werden. Ich versuche herauszufinden, ob es eine Möglichkeit gibt, ein Skript dazu zu bringen, dies in einem einzigen Befehl für mich zu tun.
Bevor jemand fragt, visudo
ist es ziemlich schwierig , meine Berechtigungen zu erweitern. Obwohl ich wahrscheinlich su
das Passwort verwenden könnte, kenne ich das Passwort des Benutzers nicht, möchte es nicht ändern und sollte es sowieso in meinem Skript fest codieren, so dass reguläres su
ohne sudo
keine Option ist. Es scheint, als müsste es eine Möglichkeit geben, mit dem Befehl zu arbeiten, zu dessen Verwendung ich berechtigt bin.
cat
dies beispielsweise verwenden, funktioniert dies nicht (z. B. versuchen Sie esecho cat | sudo su - user
)<
Zeichen, wenn wir den gesamten sudo-Befehl in ein Argument in einer XML-Datei einfügen. Ich benutze Phing, also möchte ich so etwas machen -<exec command="sudo su auto_deploy << EOF echo 'Logged in user' whoami EOF" dir="${dir.scratchpad}" />
. Der<<
vor dem EOF wirft XML - Validierungsfehler.Aus meiner persönlichen Erfahrung hat dies nie funktioniert. Das Herausfinden einer Problemumgehung führt zu mehr Arbeit und funktioniert möglicherweise nicht ordnungsgemäß, wenn Sie nicht über Root-Berechtigungen verfügen.
quelle