Exécuter la commande en tant qu'utilisateur Linux «système» (shell = / bin / false)


29

J'ai créé un utilisateur "système" dans Ubuntu 11.04 ( adduser --system) pour exécuter certaines tâches cron, mais parfois je veux tester des choses en exécutant manuellement des commandes en tant que cet utilisateur. Quelle est la façon la plus simple de procéder?

sune fonctionne pas, car l'utilisateur a /bin/falsecomme shell (ce qui est bien pour cron). J'ai changé manuellement le shell pour /bin/bashfaire mes tests, puis je l'ai changé à nouveau, mais je me demande s'il existe un moyen plus simple?

Réponses:


41

J'utilise à su - targetuser -s /bin/bashpartir d'un shell racine.

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

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

Cela fonctionne, merci! Comment ai-je manqué l'option -s?
EMP

3
vous pouvez également ajouter une option -c "your_command_here" pour passer la commande que vous souhaitez exécuter par rapport à l'attente du shell, puis la saisir à une nouvelle invite.
dmourati

2

Utilisez sudo. Cela fonctionnera même si l'utilisateur n'a pas de vrai shell.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.