Ich muss als root su und einen Befehl als einzelne Zeile ausführen. Dies ist für die Verwendung in einem Python-Skript vorgesehen. Was ich suche ist:
$ su root [some-magic] sh /home/jay/script-that-needs-executing-as-root.sh
<script output>
Dies ist auf einem öffentlichen Ubuntu-Server. Das Konto, auf dem dies ausgeführt wird, hat kein Kennwort, wurde jedoch so eingerichtet, dass im Grunde nicht auf alles zugegriffen werden kann, abgesehen von einem Python-Skript, das schreibgeschützt ist und sich am Ende in ~ / .profile befindet
cd ~/py/main
python3 start.py
logout
Sie haben also keinen wirklichen Zugriff auf den Server. Innerhalb des Python-Skripts funktioniert su. Wenn dies erforderlich ist, kann der Benutzer shellasroot
das Python-Skript eingeben, das Root-Passwort eingeben und Befehle ausführen. Ich suche jedoch nach einer Möglichkeit, dies programmgesteuert zu tun.
TL; DR - Auf einem Konto ohne Sudo-Berechtigungen muss ich ein Shell-Skript als Root in einer Zeile ausführen.
sudo
Zugriff. Sie haben bereits die Macht, alles zu brechen, was sie möglicherweise brechen können. Sie können ihnen auch Sudo-Zugriff gewähren, um nur Ihr Skript auszuführen. Wäre das eine anständige Problemumgehung?Antworten:
Sie können die
-c
Option verwendensu
, einen einzelnen Befehl zu übergeben.quelle