Comment puis-je exécuter des scripts Shell sudo-requis à partir de PHP sans invite de mot de passe ?

Barbara Streisand
Libérer: 2024-11-17 18:24:02
original
333 Les gens l'ont consulté

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
    Copier après la connexion
  2. Ajouter une ligne au format suivant :

    www-data ALL=NOPASSWD: /path/to/script
    Copier après la connexion

    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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal