sudo en php exec()

Je ne sais pas ce que l'affaire est ici...

Si je veux exécuter un script applescript: sudo osascript myscript.scpt

Cela fonctionne bien dans le terminal, mais pas quand je l'exécuter via PHP exec(); rien ne se passe. La console dit

no tty present and no askpass program specified ; TTY=unknown ; 

J'ai fait mes recherches, et il semble que je manque le mot de passe pour le sudo de commande. J'ai essayé un couple de différentes méthodes pour contourner ce problème, y compris:

  • écrit %admin ALL=(ALL) ALL dans /etc/sudoers
  • et proc_open() au lieu de exec()

aucun ne semble pas fonctionner, par conséquent, me rend Fou!

Donc, fondamentalement, est-il une façon précise pour obtenir PHP pour exécuter d'un simple terminal de commande?

EDIT: pour clarifier, myscript.scpt est un simple appleScript que les changements à l'écran de l'INTERFACE utilisateur (pour un projet de plus grande envergure). En théorie, il suffit de osascript myscript.scpt devrait être suffisant, cependant la sudo est pour une raison nécessaire d'invoquer l' certains réponse du système. Si le sudo pourrait être en quelque sorte éliminé, je ne pense pas que je voudrais avoir ce problème d'autorisations.

  • Il existe des moyens pour résoudre ce problème, mais la meilleure façon est probablement faire myscript.script fonctionner sans les privilèges root.
  • De toute façon, vous pouvez aller à ce sujet est techniquement une mauvaise idée. Soit vous donnez PHP accès à sudo sans avoir besoin d'un mot de passe ou utiliser un setuid helper script qui s'exécute toujours avec les privilèges de root. Ni l'un, est tout à fait sain d'esprit lorsque vous traitez avec un PHP front-end. Pouvez-vous mettre à jour votre question pour nous dire ce que myscript.scpt est en fait l'accomplissement ?
  • Question mise à jour
InformationsquelleAutor pop850 | 2010-07-03