Ich möchte sudo mit meinem Passwort als Parameter ausführen, damit ich es für ein Skript verwenden kann. Ich habe es versucht
sudo -S mypassword execute_command
aber ohne Erfolg. Irgendwelche Vorschläge?
Ich möchte sudo mit meinem Passwort als Parameter ausführen, damit ich es für ein Skript verwenden kann. Ich habe es versucht
sudo -S mypassword execute_command
aber ohne Erfolg. Irgendwelche Vorschläge?
sudo
richtig zu konfigurieren , dass für bestimmte Programme / Benutzer / Gruppen kein Kennwort abgefragt wird, um solche schmutzigen Hacks zu vermeiden.
Antworten:
Mit dem -S-Schalter liest sudo das Passwort von STDIN. Das heißt, Sie können tun
echo mypassword | sudo -S command
um das passwort an sudo weiterzugeben
Die Vorschläge anderer, bei denen das Kennwort nicht als Teil eines Befehls übergeben wird, z. B. die Überprüfung, ob der Benutzer root ist, sind aus Sicherheitsgründen wahrscheinlich viel bessere Ideen
sudo chmod -R 0100 myScriptFolder
? Würde dies nicht die Sicherheitsprobleme lösen (vorausgesetzt, niemand außer Ihnen verwendet Ihren Computer als Root)?
Sie können das s
Bit für Ihr Skript so festlegen , dass es nicht sudo
als Root benötigt und ausgeführt wird (und Sie müssen Ihr Root-Passwort nicht in das Skript schreiben):
sudo chmod +s myscript
+s
ist das Setuid-Bit. +t
ist das klebrige Stück.
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
echo -e "YOURPASSWORD\n" | sudo -S "run -x"
. Es heißt sudo: run -x: command not found
. Irgendeine Idee, wie man das umgehen kann?
Eine Möglichkeit besteht darin, das -A-Flag für sudo zu verwenden. Dies führt ein Programm aus, um nach dem Passwort zu fragen. Anstatt zu fragen, könnten Sie ein Skript haben, das nur das Passwort ausspuckt, damit das Programm fortgesetzt werden kann.
# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi