2016-03-16 7 views
0

Ich habe ein PHP-Skript, das ich brauche, um einen Linux-Terminal-Befehl auszuführen. Mein Problem ist, dass ich dies als Sudo ausführen muss, aber es funktioniert nicht. Ich habe visudo gemacht und hinzugefügt/deaktiviert wie folgt:Wie Terminalbefehl über PHP-Skript ausführen

asterisk ALL=NOPASSWD: /usr/sbin/cmd.php 
Defaults!/usr/sbin/cmd.php !requiretty 
#Defaults requiretty 
#Defaults !visiblepw 

Aber ich bin immer diesen Fehler in Apache-Logs „sudo: keine tty vorhanden und kein askpass Programm angegeben“. FYI Apache läuft als Benutzer asterisk und seine Centos 6. Ich stecke jetzt so raus.

Dank

+0

Ist der Befehl, den Sie genau "/usr/sbin/cmd.php" versuchen, auszuführen? Ich hatte Probleme in der Vergangenheit, als ich mit php angefangen habe oder nett hinzugefügt habe. Oh, und haben Sie irgendwelche Fehler im auth.log? – Jure1873

+0

Ich mache einfach "Service asterisk stop", um das Konzept zu überprüfen. Ich überprüfte sichere Protokolle und die Anzeige "sudo: pam_unix (sudo: auth): Konversation fehlgeschlagen sudo: pam_unix (sudo: auth): auth konnte das Passwort für [asterisk] nicht identifizieren" – jaseUK

+0

Hum ich glaube mein asterisk-Benutzer hat ein Passwort, Was ist die beste Praxis dafür jetzt? – jaseUK

Antwort

0

Ihr Asterisk-Konto nicht Shell-Login haben. Sudo-Benutzer muss Shell-Login haben. Überprüfen Sie es in/etc/passwd. Wenn nicht, bedeutet das, dass kein Zugriff auf Shell möglich ist.

0

Sie müssen Sternchen API überprüfen, ist es AMI (Asterisk Management Interface) rufen https://github.com/marcelog/PAMI

+0

Oder Alternative http://phpagi.sourceforge.net/ –