Server Support Forum
sudo & php shell_exec

Zurück   Server Support Forum > >


Antwort
 
Themen-Optionen Thema bewerten
  #1  
Alt 07.04.2013, 19:35
Mutschas1 Mutschas1 ist offline
Registered User
 
Registriert seit: 02.2010
Beiträge: 23
sudo & php shell_exec

Hallo Community,

ich habe vor einigen Jahren mal mittels visudo folgendes eingetragen, was nachwievor ohne Probleme funktioniert, damit ich mittels php's shell_exec() ps und grep verwenden kann:

Code:
vu2372 ALL=(runuser)NOPASSWD: /home/the/location/of/the-file.sh
vu2372 ALL=(runuser)NOPASSWD: /bin/ps, /bin/grep
Nun wollte ich die Befehle, die der User verwenden darf um "kill" erweitern:

Code:
vu2372 ALL=(runuser)NOPASSWD: /home/the/location/of/the-file.sh
vu2372 ALL=(runuser)NOPASSWD: /bin/ps, /bin/grep, /bin/kill
Nach Speicherung der Datei und ausführen des php-Scripts musste ich aber leider feststellen, dass der kill-Befehl einfach ignoriert wird (ps & grep gehen nachwievor). Im Log (/var/log/auth.log) steht leider nichts, was mich weiter bringt.

Habt ihr eine Idee? Muss ich vll. sudo "restarten"?

Danke.
Mit Zitat antworten

  #2  
Alt 08.04.2013, 02:30
Benutzerbild von d4f
d4f d4f ist offline
Support Guru
 
Registriert seit: 04.2007
Ort: /dev/urandom
Beiträge: 4.274
d4f eine Nachricht über ICQ schicken d4f eine Nachricht über MSN schicken
Ausser du hättest /proc mit der Mountoption hidepid=1/2 in der fstab darf jeder User ohne sudo alle laufenden Prozesse und PID's sehen. Grep ist natürlich auch nicht restrikted.
Kann es also sein dass es nie geklappt hat, du es aber nicht gemerkt hast?
Wie rufst du denn via shell_exec den Befehl auf?
__________________
Einige Beiträge sind auf meinem Smartphone verfasst. Bitte Tippfehler und Abkürzungen entschuldigen!
Bitte keine ICQ/MSN/Skype Kontaktaufnahmen ohne vorherige persoenliche Absprache.
Mit Zitat antworten
  #3  
Alt 08.04.2013, 07:59
Benutzerbild von Huschi
Huschi Huschi ist offline
Moderator
 
Registriert seit: 09.2003
Ort: Nürnberg
Beiträge: 15.408
Ich denke die wesentliche Frage steckt hier:
Zitat:
Zitat von Rafioso Beitrag anzeigen
dass der kill-Befehl einfach ignoriert wird (ps & grep gehen nachwievor).
Im Prinzip funktioniert es so. Allerdings kann ein unprivilegierter User nur seine eigenen Prozesse killen.
Tipp: Lass Dir mal den Fehlercode ausgeben.

huschi.
__________________
huschi.net - Linux-Server-Admin FAQ
Consult-N.de - kommerzieller Linux-Support
Mit Zitat antworten
  #4  
Alt 08.04.2013, 12:08
Benutzerbild von d4f
d4f d4f ist offline
Support Guru
 
Registriert seit: 04.2007
Ort: /dev/urandom
Beiträge: 4.274
d4f eine Nachricht über ICQ schicken d4f eine Nachricht über MSN schicken
Genau - aber wie merkt er dass sudo nicht klappt wenn die Ausgabe bislang immer stimmte? =)
__________________
Einige Beiträge sind auf meinem Smartphone verfasst. Bitte Tippfehler und Abkürzungen entschuldigen!
Bitte keine ICQ/MSN/Skype Kontaktaufnahmen ohne vorherige persoenliche Absprache.
Mit Zitat antworten
  #5  
Alt 08.04.2013, 20:09
Benutzerbild von Huschi
Huschi Huschi ist offline
Moderator
 
Registriert seit: 09.2003
Ort: Nürnberg
Beiträge: 15.408
Bitte korrigiere mich, aber ich habe aus dem ersten Beitrag raus gelesen, dass das Feature "kill" neu hinzugekommen ist. Und genau dies funktioniert nicht.
Daher erübrigt sich ein Vergleich mit vorher, oder?

Wir wissen allerdings recht viele Dinge nicht. U.a. ist auch nicht klar, ob sudo oder kill den Fehler wirft.
Daher finde ich den Weg den Fehlercode (oder noch besser: eine Fehlermeldung) abzufangen doch recht hilfreich.

huschi.
__________________
huschi.net - Linux-Server-Admin FAQ
Consult-N.de - kommerzieller Linux-Support
Mit Zitat antworten
  #6  
Alt 08.04.2013, 20:18
Benutzerbild von d4f
d4f d4f ist offline
Support Guru
 
Registriert seit: 04.2007
Ort: /dev/urandom
Beiträge: 4.274
d4f eine Nachricht über ICQ schicken d4f eine Nachricht über MSN schicken
Naja vorher hat er Prozesse angezeigt.
Das klappt mit und ohne root.
Jetzt killt er Befehle anderer User - das klappt nicht ohne root.

Vorher war es also egal ob sudo lief - jetzt nicht mehr.
__________________
Einige Beiträge sind auf meinem Smartphone verfasst. Bitte Tippfehler und Abkürzungen entschuldigen!
Bitte keine ICQ/MSN/Skype Kontaktaufnahmen ohne vorherige persoenliche Absprache.
Mit Zitat antworten
  #7  
Alt 08.04.2013, 20:42
Benutzerbild von Huschi
Huschi Huschi ist offline
Moderator
 
Registriert seit: 09.2003
Ort: Nürnberg
Beiträge: 15.408
Ah, jetzt verstehe ich was Du meinst. Du willst verdeutlichen, dass ggf. sudo vorher schon nicht funktioniert hat.
Wenn ich davon ausgehe (ohne es genau zu wissen), dass sudo tatsächlich genutzt wurde, also der Aufruf in etwa so aus sieht:
shell_exec("/usr/bin/sudo /bin/ps");
Wenn sudo fehl schlägt, wird bin/ps auch nicht ausgeführt. Dem zufolge muss vorher sudo bereits funktioniert haben, oder?
Daher fragst Du mit Recht nach dem konkreten shell_exec-Aufruf.

Trotz allem ist die Frage nach dem Fehlercode/Fehlermeldung durchaus Lösungsorientiert.
Und die Frage ob sudo oder kill den Fehler wirft, könnte man damit beantworten.

Von daher wird es Zeit dass Rafioso sich mal wieder zu Wort meldet um der Lösung näher zu kommen.

huschi.
__________________
huschi.net - Linux-Server-Admin FAQ
Consult-N.de - kommerzieller Linux-Support
Mit Zitat antworten
  #8  
Alt 14.04.2013, 12:24
Mutschas1 Mutschas1 ist offline
Registered User
 
Registriert seit: 02.2010
Beiträge: 23
Hallo,

zunächst danke für die Antworten.

Sudo funktioniert eigentlich schon. Das steht in der Log beim Aufruf der php-Datei:

Code:
Apr 14 12:16:15 test sudo:   vu2372 : TTY=unknown ; PWD=/the/path/test ; USER=runuser ; COMMAND=/bin/ps aux
Wie bereits gesagt, erhalte ich im selbigen Log keine Fehlermeldung bzgl. kill.

Der Aufruf lautet jeweils

PHP-Code:
shell_exec("sudo -u runuser ***befehl***"); 
Ich habe gerade versucht, den Sudo-Part wegzulassen. Das hat bei ps & grep funktioniert

Danke.
Mit Zitat antworten
  #9  
Alt 14.04.2013, 19:47
Benutzerbild von Huschi
Huschi Huschi ist offline
Moderator
 
Registriert seit: 09.2003
Ort: Nürnberg
Beiträge: 15.408
Du willst also mit de PHP-Script ggf. einen Prozess des Users "runuser" killen. Stimmt das so?

Das überhaupt kein Eintrag im auth-Log steht, wundert mich allerdings auch. Kannst Du denn 100%ig sagen, dass der Programmcode wirklich an diesen shell_exec vorbei komt?
Wenn ja, ist sicher gestellt, dass der Shell-Code keinen Syntax-Fehler enthält?

Nochmal zum Fehlercode:
Der Nachteil von shell_exec() ist, dass er keinen Fehlercode liefert. Die Funktionen exec() oder system() hingegen haben diese Möglichkeit.
Alternativ: Du gibst die Ausgabe des Fehlercodes mit in die Shell-Befehlszeile ein. Dann ist es die letzte Zeile der Ausgabe.

huschi.
__________________
huschi.net - Linux-Server-Admin FAQ
Consult-N.de - kommerzieller Linux-Support
Mit Zitat antworten
  #10  
Alt 15.04.2013, 08:32
counteam counteam ist offline
Registered User
 
Registriert seit: 08.2009
Beiträge: 137
Kann das vielleicht sein, dass du kill falsch erweitert hast?
Ansonsten probiere doch mal über /usr/bin zu gehen und nicht über /bin.

Im übrigen könntest du mal mehrere Ausgaben probieren. Es gibt nämlich nicht nur shell_exec, exec oder system, sondern auch passthru und proc_open.

Geändert von counteam (15.04.2013 um 08:34 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
kill, php, shell_exec, sudo


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP - shell_exec problem DjCueZoomz Perl / PHP / Python / bash 9 05.02.2012 19:42
Sudo traced Smalltalk 7 13.11.2009 18:59
[Sicherheit] Shell_Exec, Safemode und Basdir marius Perl / PHP / Python / bash 1 26.02.2007 19:31
su - oder sudo -s ? effect-energy Linux 1 21.04.2006 13:19
Safe Mode aus für PHP:shell_exec Schludi Virtuelle Server 4 25.08.2005 21:20


sudo & php shell_exec
sudo & php shell_exec
sudo & php shell_exec sudo & php shell_exec
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.