PHP shell_exec() et sudo: doit être setuid root
J'ai un shell_exec()
commande qui permet d'accéder à un répertoire au-dessus de ma racine du document, donc j'ai besoin d'utiliser sudo "en tant que root" pour y arriver. (Je comprends les problèmes de sécurité et je suis putitng dans les mesures pour y remédier).
Le problème est quand je lance le shell_exec()
, je reçois un "sudo: doit être setuid root" erreur dans mon fichier error_log d'apache.
J'ai pensé que la solution était de faire un chmod 4750 le script bash qui est appelée par mon sheel_exec()
mais qui n'a pas faire le travail.
Est quoi exactement la "sudo: doit être setuid root" essayez de me dire et comment pourrais-je le résoudre?
Vous devez vous connecter pour publier un commentaire.
Est le
sudo
exécutable lui-même setuid root? Vous devrez peut-êtrechmod a+r /usr/bin/sudo
en plus de ce qui précède, mais leu+s
ligne est certainement nécessaire.sudo
ne peut pas fonctionner sans le bit setuid sed. Si vous vous attendez tout sur ce serveur pour sudo, alors vous avez besoin pour la réparation.Sinon, passez
sudo
tout à fait. Si votre script est la propriété de la racine et a son propre bit setuid est défini, alors vous n'avez pas besoin d'utiliser sudo pour obtenir les privilèges de root. En fait, il peut être plus sûr de cette façon, vous avez la garantie que votre site web de l'utilisateur ne peut utiliser ce script, sans avoir à modifier sudoers. Pour ce faire, supprimer sudo à partir de votreshell_exec()
ligne:Avez-vous vérifier les autorisations pour votre script?
Qui est propriétaire de l'exécution du script?
Le web, l'utilisateur a les droits sudo?
Pour résoudre ce problème, vous devez chown et chmod sudo fichier en tant que root comme ci-dessous.