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 ?

Comment puis-je exécuter des scripts Shell nécessitant SUDO à partir de PHP sans invite de mot de passe ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-24 04:48:13626parcourir

How Can I Run SUDO-Requiring Shell Scripts from PHP Without a Password Prompt?

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!

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