Ich versuche, den Befehl sudo und die Datei sudoers korrekt zu verwenden, damit ich einen Befehl als anderer Benutzer ausführen kann.
Ich habe meine sudoers-Datei wie folgt eingerichtet:
beans ALL = (root,apache) NOPASSWD: /opt/renovations/var/script-*.sh
Root, Apache und Beans sind Teil der Group Beans.
Außerdem verfügt / opt über 755 Berechtigungen, während das Verzeichnis / opt / renovations und seine Unterverzeichnisse dem Benutzer und der Gruppe von Beans gehören.
Der Befehl, den ich als Beans ausführen möchte, lautet:
sudo -n -u apache -i /opt/renovations/var/script-test.sh
-n: ist so, dass ich nicht zur Eingabe eines Passworts aufgefordert werde, da dies von einem Cron ausgeführt wird.
-u: ist so, dass ich mich als Apache-Benutzer
ausgeben kann. -i: ist so, dass ich eine Anmeldung und mein .profile simuliere wird geladen. Ich brauche dies, damit ich auf die Umgebungsvariablen in .profile zugreifen kann.
Das Problem ist, dass beim Ausführen des Befehls sudo die folgende Meldung angezeigt wird:
sudo: Entschuldigung, zum Ausführen von sudo ist ein Passwort erforderlich
Ich habe versucht, dies sowohl unter AIX als auch unter Ubuntu auszuführen, aber das Problem liegt auf beiden Systemen. Das funktioniert, wenn ich laufe:
sudo -n -u apache /opt/renovations/var/script-test.sh
Ohne das -i enthält meine Umgebung jedoch nicht alle Umgebungsvariablen, die ich benötigen muss.
Muss ich etwas in meiner sudoers-Datei aktualisieren, damit dies möglich ist?
beans ALL = (root,apache) NOPASSWD: /usr/bin/ksh -c /opt/renovations/var/script-*.sh
und beans ALL = (root,apache) NOPASSWD: /usr/bin/bash -c /opt/renovations/var/script-*.sh
jetzt erhalte ich den neuen Fehler, zum Beispiel:ksh: /opt/renovations/var/script-test.sh: cannot execute
visudo -c
zurück (prüft Sudoer auf Fehler). Können Sie auch die Vollversion von AIX (oslevel -s
) und die installierte Version von sudo bestätigen?