Tout ce que je dois faire est d’exécuter un script spécifique en tant qu’utilisateur particulier qui a le nologin/false
shell indiqué dans /etc/passwd
.
Je voudrais exécuter le script en tant que root et cela devrait fonctionner en tant qu'un autre utilisateur. Fonctionnement:
~# su -c "/bin/touch /tmp/test" testuser
fonctionnerait, mais j’ai besoin d’un shell valide pour le testuser. Je sais que je peux désactiver le mot de passe avec passwd -d testuser
et laisser le shell de /bin/bash
cette façon sécuriser un peu, mais j'ai besoin d'un nologin/false
shell.
Ce dont j'ai besoin, en gros, c'est de savoir quoi crontab
faire lorsque nous configurons des tâches pour qu'elles soient exécutées en tant qu'utilisateur particulier, indépendamment du fait que celui-ci possède un nologin/false
shell.
ps j'ai trouvé ce fil Exécuter une commande en tant qu'utilisateur nologin , mais je ne sais pas du tout comment exécuter concatenate
la commande su -s /bin/sh $user
du script que je dois exécuter.
root:root -rwsr-x---
?su -s /bin/bash -c 'exec /path/to/your/script &' test
runuser
, je tiens à souligner que cesu -s SHELL
paramètre rend la commande runuser pratiquement inutile :) Merci Jan!Vous pouvez le faire avec
sudo -u
si vous l'avez installé:la source
sudo -u apache whoami
?sudo -u
n’est probablement pas une bonne idée pour exécuter des commandes en tant qu’utilisateur nologin, car elle exposeSUDO_USER
le véritable environnement qui invoque la commande. Peut-être que je réfléchis juste.En fournissant le script en tant qu'argument à exécuter sur / bin / sh:
la source
à peine réalisé :
su -s "/ bin / bash" -c "/ bin / touch / tmp / testuser" testuser
Peut-être y a-t-il un meilleur moyen?!
la source
en fait, la meilleure façon de faire est via runuser
voir la page de manuel pour plus de détails
cet outil est utilisé pour faire face à la situation comme l'a dit le développeur dans son bolg
Lorsqu'un service s'exécute en tant que root et souhaite modifier l'UID à l'aide du shell, il doit utiliser runuser.
http://danwalsh.livejournal.com/55588.html
J'ai posté cette réponse dans de nombreux palais, pardonnez-moi si vous trouvez cela ennuyeux
la source
Utilisez sudo -u pour spécifier l'utilisateur. Utilisez également l'indicateur -i pour définir les variables d'environnement de l'utilisateur cible.
la source
This account is currently not available.
Utilisez la commande su avec les commandes shell -s et -c. Comme indiqué ci-dessous
la source