Comment puis-je exécuter des commandes en tant qu'autre utilisateur avec leur .bash_profile au lieu de l'utilisateur actuel?

StackOverflow https://stackoverflow.com/questions/9394175

Question

Je souhaite exécuter une commande en tant qu'utilisateur non root dans un script de démarrage (rc.local).La commande que je veux exécuter est en fait un alias dans le .bash_profile de l'utilisateur non root.J'ai essayé d'utiliser

su - myuser -c aliased_cmd

mais cela ne fonctionne pas.Si je tape simplement

su - myuser
# wait for login...
aliased_cmd

cela fonctionne bien, mais évidemment ce n'est pas approprié dans le script actuel.Bien sûr, je pourrais copier les alias et les fonctions que j'aimerais utiliser dans le fichier rc.local, mais cela semble un peu idiot ... peut-être qu'il y a une option que je ne connais pas ou un moyen d'utiliser sudo pourça?

Était-ce utile?

La solution

après avoir recherché le profil, incluez les éléments suivants

shopt -s expand_aliases

Autres conseils

Citant man su:

Lorsque - est utilisé, il doit être spécifié comme dernière option su.

Il ne spécifie pas ce qui se passe si ce n'est pas la dernière option.De plus, dans le synopsis, le nom d'utilisateur est après toutes les options.

Avez-vous essayé su -c aliased_cmd - myuser ou su -l -c aliased_cmd myuser?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top