Table des matières

, , ,

Exécuter une commande sous un autre utilisateur

On cherche ici définir sous quel compte utilisateur la commande sera executée plutôt que d'utiliser l'utilisateur courant.

sudo

Sur la plupart des systèmes GNU/Linux, la commande sudo est disponible. Elle permet de faire cela simplement:

sudo -u utilisateur_cible "commande arg_1 arg_n"

su

Si sudo n'est pas disponible su permet de le faire:

su - utilisateur_cible -c "commande arg_1 arg_n"

Si l'utilisateur n'a pas de shell renseigné par défaut (cas de www-data par exemple) la commande su retourne le message d'erreur:

This account is currently not available.

Dans ce cas il faut définir le shell à utiliser via l'option -s:

su - utilisateur_cible -s /bin/bash -c "commande arg_1 arg_n"

Références