Maison > Article > développement back-end > Comment puis-je exécuter des scripts Shell sudo-requis à partir de PHP sans invite de mot de passe ?
Comment exécuter des scripts Shell requis par SUDO à partir de PHP
L'exécution de scripts Shell qui nécessitent des privilèges élevés depuis PHP peut être difficile, car La fonction shell_exec() ne prend pas en charge les invites de mot de passe. Cependant, il existe des moyens de surmonter cette limitation et d'automatiser l'exécution du script.
Solution : modifier le fichier Sudoers
Une solution efficace consiste à modifier le fichier sudoers (généralement situé dans /etc/sudoers) et ajoutez une règle qui permet au script spécifié d'être exécuté sans mot de passe. Pour ce faire, suivez ces étapes :
Ouvrez le fichier sudoers avec les privilèges root à l'aide de la commande suivante :
sudo visudo
Ajouter une ligne au format suivant :
www-data ALL=NOPASSWD: /path/to/script
où www-data est le nom d'utilisateur du serveur Web et /path/to/script est le chemin d'accès au script bash qui nécessite des privilèges élevés.
En effectuant cette modification, vous accordez effectivement l'autorisation à l'utilisateur du serveur Web d'exécuter le script spécifié sans être invité à saisir un mot de passe.
Une fois ces étapes terminées, vous pouvez appeler votre script bash depuis PHP en utilisant la fonction shell_exec() comme d'habitude. Le script s'exécutera avec des privilèges élevés, sans aucune demande de mot de passe.
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!