Maison >développement back-end >tutoriel php >Solution à l'autorisation insuffisante d'appeler des commandes Linux en PHP
Cet article présente principalement la solution au problème des autorisations insuffisantes pour appeler des commandes Linux en PHP. Cet article est un résumé de la résolution des problèmes du projet en modifiant le fichier de configuration sudo. , le problème de ne pas avoir l'autorisation d'exécuter des commandes est résolu. Pour toute question, les amis dans le besoin peuvent s'y référer
Expérience professionnelle : yourcmd est mon programme Linux, qui a des exigences d'autorisation très strictes lors de l'utilisation de php pour l'exécution. votre programme cmdSystème : CentOS 6.3apache est l'utilisateur d'exécution de php
Utilisez la fonction execpour exécuter le program /usr/local/yourcmd/sbin/yourcmd
le code php est le suivant :
<?php $conf_file = "/var/www/html/webroot/test.tmp"; $command = "sudo /usr/local/yourcmd/sbin/yourcmd -t -f {$conf_file}"; exec($command,$out); print_r($out);Le résultat du test est qu'il n'y a aucune autorisation
Array ( [0] => sudo: no tty present and no askpass program specified )
Étapes de la solution :
$ visudo1)
Commentaires Les lignes suivantes
#Defaults requiretty2) Ajoutez le
apache ALL=(ALL) NOPASSWD: ALL Cmnd_Alias yourcmd = /usr/local/yourcmd/sbin/yourcmdLe résultat final du test
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!