Je crée un script bash qui nécessite d'exécuter des commandes en tant qu'utilisateur spécifique. Par conséquent, j'utilise la commande :
runuser
J'ai testé ce script et il fonctionne parfaitement dans Ubuntu Server 14.10. Cependant, lors du test sur 14.04 et 12, je rencontre l'erreur suivante :
runuser: command not found
Cela se produit à chaque fois que la commande runuser est utilisée.
J'utilise la commande suivante pour créer un nouvel utilisateur :
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
Y a-t-il quelque chose de spécifique qui doit être spécifié lors de la création du nouvel utilisateur ? Manque-t-il une dépendance particulière ?
Modifications pour les questions :
Sortie de l'écho $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Sortie de ls -l /sbin/runuser
ls: cannot access /sbin/runuser: No such file or directory
La raison pour laquelle je veux utiliser runuser vs su est la suivante :
Lorsque j'utilise runuser, je peux exécuter les commandes suivantes :
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
Alors qu'avec su je dois enchaîner les commandes comme ceci :
su user -c 'cd; wget http://file.com'
Réponse acceptée :
runuser
est une commande récente, elle est apparue dans util-linux 2.23. Ubuntu 14.04 est livré avec util-linux 2.20, il n'a donc pas encore cette commande.
runuser
n'est pas très utile. Utilisez simplement su
Au lieu. Notez que la commande runuser user -c 'cd'
ne fait rien – la portée de cd
ne s'étend pas au prochain appel à runuser
. Vous devez utiliser runuser user -c 'cd && wget http://file.com'
en tous cas. Utilisez su user -c 'cd && wget http://file.com'
à la place.