[PHP] Samba herstarten vanuit PHP-pagina

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Boudi
  • Registratie: Oktober 2000
  • Laatst online: 13-07 01:06

Boudi

Always Coca Cola

Topicstarter
Ik wil graag samba herstarten vanuit een PHP-webpagina. De webserver draait op Apache. Ik heb als eerste dit geprobeerd:
code:
1
exec("/etc/rc.d/init.d/smb restart");


Dit gaf geen resultaat. Om heel simpel de aanroep van smb te testen heb ik toen dit geprobeerd:
code:
1
echo exec("/etc/rc.d/init.d/smb");


Dit zou volgens mij de tekst 'Usage: /etc/rc.d/init.d/smb {start| stop| restart| reload| status| condrestart}' moeten echo-en, maar ook dit geeft geen resultaat. Apache draait onder het 'apache'-account; ik weet niet of dit de oorzaak is, want de smb-executable heeft wel 755-rechten....

Iemand hier ervaring mee? Andere commando's met exec gaan allemaal wel goed, maar alleen deze krijg ik niet aan de praat....

Met of zonder mayonaise?


Acties:
  • 0 Henk 'm!

  • Newjersey
  • Registratie: November 2000
  • Laatst online: 14:22
volgens mij kan je die smb en de nmb daemon alleen als root starten.. krijg je nooit als apache user aan de praat of je moet met PHPsuexec in apache 2 oid gaan werken..

Acties:
  • 0 Henk 'm!

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 17-09 15:48
Hmm, dat je commando uitgevoerd word onder de apache gebruiker zou het best kunnen zijn. Ik moet in iedergeval op mijn distro (ArchLinux) root zijn om dit soort acties uit te mogen voeren. Je zult jezelf dus eerst root rechten moeten geven voordat je het restarten uit kan voeren.

Je zou dit zoals hierboven al word geopperd met PHPsuexec kunnen doen. Of iets als sudo. In ieder geval zijn de root rechten nodig voor dit soort systeem kritieke acties.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
exec is iets anders als een named pipe (waarmee je processen opent, en de scherm gegevens leest ed.) Exec voert het simpelweg uit.

[ Voor 14% gewijzigd door PrisonerOfPain op 03-11-2004 22:30 ]


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 16:51

Kees

Serveradmin / BOFH / DoC
ipv echo, gebruik passthru("/etc/init.d/smb") om foutmeldingen te zien, of exec("smb", $output); print_r($output);

Maar je krijgt toch een foutmelding dat je niet de juiste privs hebt voor die actie, dus moet je naar sudo/phpsuexec gaan kijken.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

Verwijderd

beste keuze is waarschijnlijk om je sudo zo in te stellen dat de apache user smb als root mag uitvoeren.

dus even sudo installeren, en kijken hoe dat moet.
zou iets moeten zijn in de trend van
code:
1
apache   ALL = NOPASSWD: /etc/rc.d/init.d/smb


of zo iets dergelijks.
Pagina: 1