web-dev-qa-db-fra.com

Exécuter la commande comme utilisateur "système" linux (shell = / bin / faux)

J'ai créé un utilisateur "système" à Ubuntu 11.04 (adduser --system) Pour avoir exécuté certains travaux de cron, mais parfois, je souhaite tester les choses en exécutant manuellement des commandes comme cet utilisateur. Quel est le moyen le plus simple de faire cela?

su ne fonctionne pas, car l'utilisateur a /bin/false comme sa coquille (qui va bien pour cron). Je change manuellement la coquille à /bin/bash Pour faire mes tests, puis le changer à nouveau, mais je me demande est là un moyen plus facile?

31
EMP

J'utilise su - targetuser -s /bin/bash à partir d'une coquille racine.

Pour l'exécution directe de la commande, utilisez -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
42
dmourati

Utiliser sudo. Cela fonctionnera même si l'utilisateur n'a pas de véritable shell.

2
eirescot