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 puis-je exécuter des scripts Shell sudo-requis à partir de PHP sans invite de mot de passe ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-17 18:24:02331parcourir

How Can I Run Sudo-Required Shell Scripts from PHP Without Password Prompts?

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 :

  1. Ouvrez le fichier sudoers avec les privilèges root à l'aide de la commande suivante :

    sudo visudo
  2. 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.

  3. Enregistrez et fermez le fichier sudoers.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn