Maison > Article > développement back-end > Comment puis-je exécuter des scripts Shell nécessitant SUDO à partir de PHP sans invite de mot de passe ?
Appel de scripts Shell nécessitant SUDO à partir de PHP
L'exécution de scripts Shell qui exigent des privilèges élevés, tels que ceux qui nécessitent SUDO, peut être difficile lorsque en les invoquant via la fonction shell_exec de PHP. Par défaut, shell_exec ne dispose pas des autorisations nécessaires pour contourner l'invite de mot de passe.
Solution : modifier le fichier sudoers
Pour résoudre ce problème, vous pouvez modifier les sudoers (accessible via visudo) pour accorder à l'utilisateur du serveur Web (par exemple, www-data) l'autorisation d'exécuter le script sans mot de passe. Voici un exemple de règle qui peut être ajoutée au fichier sudoers :
www-data ALL=NOPASSWD: /path/to/script
Cette règle permet à l'utilisateur www-data d'exécuter le script /path/to/script sans fournir de mot de passe. Une fois le fichier sudoers mis à jour, vous pouvez appeler le script depuis PHP en utilisant shell_exec comme d'habitude.
<?php $output = shell_exec('/path/to/script'); ?>
Attention : Accorder des autorisations excessives dans le fichier sudoers peut compromettre la sécurité du système. Assurez-vous d'ajouter uniquement les règles nécessaires et de minimiser la portée des privilèges accordés.
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!