Ne me demandez pas pourquoi, mais je dois trouver un moyen de autoriser l'utilisateur Apache www-data
pour monter et démonter des périphériques au moment de l'exécution sur le système hôte. De tels dispositifs sont, par exemple, des lecteurs USB externes sur /dev/sdaXY
formaté avec le système de fichiers NTFS.
J'exécute le service web sur une machine Debian utilisant Apache 2.2 et PHP 5.3. Lorsque j'essaie d'exécuter le mount
via la commande exec()
J'ai évidemment ces messages d'erreur :
exec('mount /dev/sda1 /media/usb_flash');
// -> mount: only root can do that
exec('sudo mount /dev/sda1 /media/usb_flash');
// -> sudo: no tty present and no askpass program specified
exec('sudo -n mount /dev/sda1 /media/usb_flash');
// -> sudo: sorry, a password is required to run sudo
Je suis conscient que seul root peut le faire (en fait, à partir de SSH, j'ai toujours besoin de sudo
lors du montage) et que www-data
ne peut pas être un sudoer . Mais je suis sûr qu'il y a un moyen, une solution de contournement, pour rendre ma tâche possible. Je ne sais pas par où commencer à chercher : Googler ma question est inutile, je parie que ce n'est pas un scénario commun.