Pas besoin de modifier les permissions du fichier 🙂
Ici, le soucis est que l'utilisateur
www-data n'a pas de mot de passe défini. Or, la commande
su permet de lancer une action en tant qu'un autre utilisateur, en utilisant le mot de passe défini pour le compte utilisateur cible. Dans cette configuration, elle ne peut donc pas marcher, à moins de mettre un mot de passe à
www-data, ce qui n'est pas recommandé.
La solution est en fait toute simple: il suffit d'utiliser la commande
sudo, qui permet également de lancer une action en tant qu'un autre utilisateur, mais en utilisant le mot de passe défini dans le compte de l'utilisateur d'origine (pour peu que celui-ci ait les droits suffisants). Le truc est que
su et
sudo ont des fonctionnements légèrement différents, et que donc, il faut légèrement adapter les commandes 🙂
Pour utiliser
su (nécessite que le compte utilisateur ait un mot de passe défini, pas conseillé ici) :
su www-data -c "dvips big.dvi"
Ou plus généralement, « su UTILISATEUR -c "COMMANDE" ».
Pour utiliser
sudo (ton compte principal ayant les droits, ça devrait passer tout seul) :
sudo -u www-data dvips big.dvi
Ou plus généralement, « sudo -u UTILISATEUR COMMANDE »
Ne surtout pas hésiter à consulter le manuel (
man su et
man sudo dans un terminal) pour davantage d'explications sur les différentes options.
(Pour préciser: le « sudo su » peut également fonctionner, dans la mesure où, si l'on ne spécifie pas d'utilisateur en particulier, ces commandes sont configurées pour utiliser le compte administrateur (root) comme utilisateur cible. Taper « sudo su » revient donc à faire lancer la commande « su » par le compte root, or, le mot de passe n'est jamais demandé par « su » quand le compte d'origine est root. Ça marche, donc, mais c'est loin d'être recommandé, notamment pour des raisons de sécurité.)