PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (cgi) mit unterschiedlichen Rechten ausführen



TheDodger
28-06-2004, 15:40
Ich habe ein wirklich ***** Problem ...

Ich habe mir ein bash-Script geschrieben, welches via Webinterface aufgerufen wird und nur ein simples .forward anlegen soll.
Tut es auch soweit, allerding stimmen die Rechte der Datei nicht.
Also hab ich in das bas-Script das entsprechende chown mit reingehackt.

Führe ich das Script als root auf der Console aus, läuft alles wunderbar, wenn es allerdings als user apache durch den httpd aufgerufen wird, bekomme ich dann nur noch diese Fehlermeldung:


chown: changing ownership of `/home/maildir/<username>/.forward': Operation not permitted

Jetzt dachte ich mir, das man das ganze mittels sudo regeln kann, doch wenn ich versuche ausschließlich das Script ohne Passworteingabe einzutragen meckert auch visudo. :(

aus meiner /etc/sudoers:

apache localhost=/usr/local/bin/vacation.sh NOPASSWD: ALL

Das hier würde funktionieren:

apache localhost=(ALL) NOPASSWD: ALL

Allerdings ist mir das dann doch zu unsicher ...

Gibt es denn keine andere Lösung?

mehlvogel
28-06-2004, 16:41
Du musstn Cmnd_Alias anlegen für den Befehl in etwa so:



# Cmnd alias specification
Cmnd_Alias WORK = /mein/toller/Befehl

# User privilege specification
root ALL=(ALL) ALL
nobody ALL=(root) WORK


Genauere Informationen mit Bespielen gibt

man sudoers

Ich glaube bei dir ist Kommando und User zudem noch falschrum.

TheDodger
28-06-2004, 16:51
Du musstn Cmnd_Alias anlegen für den Befehl in etwa so:
[...]
Ich glaube bei dir ist Kommando und User zudem noch falschrum.
Danke, werd ich morgen früh gleich als erstes ausprobieren.

PS.Hmm, bist du nicht des öfteren im IRC in #gentoo.de zu finden? :D

peschmae
28-06-2004, 19:45
aliase brauchst du nicht wenn du nicht willst. Das verkehrte ist tatsächlich die Reihenfolge. So sollte es gehen:


apache localhost=NOPASSWD:/usr/local/bin/vacation.sh



Hat jemand eine Idee wieso bei mir das ganze auch ohne "NOPASSWD" passwortlos funktioniert - d.h.


apache localhost=/usr/local/bin/vacation.sh

fragt bei mir (und nur auf meinem Laptop) nicht nach nem Passwort.

Die Anschuldigungen ich hätte am Sourcecode gehackt weise ich weit von mir ;)


MfG Peschmä

TheDodger
29-06-2004, 06:12
aliase brauchst du nicht wenn du nicht willst. Das verkehrte ist tatsächlich die Reihenfolge. So sollte es gehen:


apache localhost=NOPASSWD:/usr/local/bin/vacation.sh


Das ganze so eingegeben und in meiner /var/log/apache/error_log erscheint das:


We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these two things:

#1) Respect the privacy of others.
#2) Think before you type.

Password:

:(

Okay, da es ja ausschließlich bei chown hing, habe ich jetzt chown in die sudors gesteckt und jetzt klappt das auch. ;)