startup scripte via browser starten

piotr

Well-Known Member
Hallo

Wie bringe ich mein freeBSD 5.4 dazu, startup scripte, wie z.B ntop.sh via browser zu starten ?

Habe folgendes gemacht:
1.) ntop.sh von /usr/local/etc/rc.d nach /usr/local/www/cgi-bin kopiert
2.) chmod 755 ntop.sh
3.) chown www ntop.sh
4.) ein kleiner perl script geschrieben und ebenfalls in /cgi-bin platziert,
damit er ntop.sh starten kann.

von command line als root user funktioniert bestens, aber via browser bekomme immer noch in log:
Permission denied

Piotr
 
piotr schrieb:
... chown www ntop.sh ...
piotr schrieb:
... von command line als root user funktioniert bestens ...
Na? fällt dir schon was auf :)?

Der Apache läuft als unpriviligierter user "www" und ich vermute mal das ntop.sh root rechte braucht. Sonst könnte ja jeder User Services starten und stoppen wie er lustig ist.
Mit sudo(8) könnte es vielleicht gehen. Aber da könnte ich nicht mehr ruhig schlafen, wenn jeder Besucher per Browser Services starten und stoppen kann.
Vielleicht kam dir da Webmin weiter helfen, der müsste so was doch auch können .. und noch viel mehr.

Gruß tschepe
 
Danke, sudo ist vermutlich was ich brauche.

habe testweise in /usr/local/etc/sudoers

www ALL=(ALL) NOPASSWD: ALL

erfasst.

später möchte ich irgendwie in sudoers nur für diesen script begrenzen.


Wenn ich jetzt von command line als root user eingebe:

# sudo -u www sh /usr/local/www/cgi-bin/ntop/ntop.sh start
ntopbsd#

ntop.sh will trotzdem nicht starten

abgesehen von sichercheit, sollte dies doch funktionieren.
 
piotr schrieb:
# sudo -u www sh /usr/local/www/cgi-bin/ntop/ntop.sh start
ntop.sh will trotzdem nicht starten

Du startest so unter dem User www das script. Du willst es aber als root starten.

Trage in die sudoers den user www so ein, dass er ntop ohne passwort starten kann und lasse dann das -u www einfach weg.

Stefan
 
der Eintrag in der suduers ist schon okay. In deinem script startest du aber ntop als www (user=www). Du solltest nur schreien:
# sudo /usr/local/www/cgi-bin/ntop/ntop.sh start
Dann wird es unter der Kennung von root ausgeführt.

Stefan
 
endlich mal funktioniert !

habe dazu ein kleiner perl sript geschrieben, der ntop via browser stoppt und startet.
jetzt kann ich ntop via browser stoppen & starten.

piotr
 
Habe nur ein Problem mit "sudo"

Wenn ich den Server restarte, dann kann ich nicht ntop via Browser starten,
ich muss zuerst Apache restarten.

Es scheint fast so, dass Apache startet bevor sudo aktiv wird.

Wie kann ich das ändern ?

Piotr
 
piotr schrieb:
Es scheint fast so, dass Apache startet bevor sudo aktiv wird.
Piotr
sudo ist kein Dienst, der gestartet wird, sudo ist ein Befehl. Daher sollte er sobald das Userland verfügbar ist funktionieren (unabhängig von apache)

Stefan
 
OK, aber das Problem besteht immer noch
und erst nach dem Apache restart kann ich sudo via Browser ausführen.

Von command line funktioniert sudo für www user sofort nach dem restart.

in /var/log/httpd-error.log

habe keinen Eintrag.

Es sollte doch irgendeine Lösung des Problems sein, ausser es ist ein BUG von Apache.

Piotr
 
Zurück
Oben