PHP script mit ROOT rechten ausführen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
apache
beschreibung
beschriebenen einstellungen
code
datei
eventuell entstehenden schaden
haftung
handeln
memory
not
part
run
schritt
schweizer messer
sicherheit
these
tun
url
warnung
-
diese beschreibung gibt einem ein schweizer-messer in die hand. allerdings ein zweischneidiges! daher hir gleich meine warnung:
WARNUNG! man solte nur dann so handeln, wenn man es genau weißt, was man tut!! ich übernehme KEINERLEI HAFTUNG für irgendwelche eventuell entstehenden schaden!!!!
und es geht los:
1.
als welcher 'user' und mit welchen rechten rennt eigentlich apache?
steht in der httpd.conf datei:# # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # . On SCO (ODT 3) use "User nouser" and "Group nogroup". # . On HPUX you may not be able to use shared memory as nobody, and the # suggested workaround is to create a user www and use that user. # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) # when the value of (unsigned)Group is above 60000; # don't use Group #-1 on these systems! # User apache Group apache
was für ein passwort er hat, kann man so (in der konsole) herausfinden:
no!?$ su Password: # passwd -S apache apache LK 2011-11-24 0 99999 7 -1 (Password locked.) # passwd -fu apache Unlocking password for user apache. passwd: Success # passwd -S apache apache NP 2011-11-24 0 99999 7 -1 (Empty password.) # passwd -l apache Locking password for user apache. passwd: Success
apache hat das passwort empty, also leer, oder von mir aus kein!
und jetzt noch die nötigen schritte um php scripts mit root rechten auszuführen:
1.
in der sudoers-datei steht irgendwo
das sollte jetzt mal schnell auskommentiert werden (wofür man das programm visudo verwendet!)Defaults requiretty
#Defaults requiretty
2.
im 'main part' von sudoers steht dann irgendwo
nach diesem eintrag fügen wir dann das ein:root ALL=(ALL) ALL
ab sofort hat apache root rechte! und das ohne ein passwort eingeben zu müssen. an sich schon etwas bedenklich!apache ALL=(ALL) NOPASSWD: ALL
wie dann der rest in einem php-datei abläuft, ist eigentlich recht 'einfach' beschrieben:
3.
beispiel, rechner neu starten, vorher aber noch einmal meine warnung vom anfang:
WARNUNG! man solte nur dann so handeln, wenn man es genau weißt, was man tut!! ich übernehme KEINERLEI HAFTUNG für irgendwelche eventuell entstehenden schaden!!!!
<?php ... ... hier jede menge maßnahmen und ausgefallene ... eigene ideen für die sicherheit!!! ... echo `echo -e '' | sudo -S -u root shutdown -r now 2>&1`;
// und hier ist der bildschirm auch schon schwarz. aber es geht dann auch gleich weiter ;)
bei den oben beschriebenen einstellungen sollte man diese zeile NIE in ein php datei SO reischreiben! - oder will man es nicht anders ;(
ja! also ich kann es nicht lassen! ich muss es noch einmal tun!
WARNUNG! man solte nur dann so handeln, wenn man es genau weißt, was man tut!! ich übernehme KEINERLEI HAFTUNG für irgendwelche eventuell entstehenden schaden!!!!
viel spass damit und lg
eure hemi
p.s.: hier wird es etwas mehr darüber zu lesen geben (aber ers ab morgen - ich muss auch mein brötchen verdienen ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage