Comment faire sans mot de passe de passer à un autre utilisateur dans un script shell
Je veux su de hadoopmaster à hduser. Quand je le fais sur le terminal, je fais:
su - hduser
qui me demande ensuite le mot de passe et j'entre et je reçois à hduser. Comment puis-je faire la même chose dans un script shell, sans avoir à se soucier du mot de passe? J'ai essayé le sudoers
méthode de fichiers où j'ai mis:
root ALL=(ALL:ALL) ALL
hduser ALL=(ALL:ALL) ALL
hadoopmaster ALL=(ALL:ALL) NOPASSWD: /bin/su hduser
(here I tried different combinations of the line with and without the '-' and also
with and without /bin)
Je l'ai fait et quand je fais su hduser
ou su - hduser
, il me demande le mot de passe de nouveau. Que dois-je faire?
OriginalL'auteur CodingInCircles | 2013-12-08
Vous devez vous connecter pour publier un commentaire.
Vous n'utilisez pas "su" avec le fichier sudoers, vous devez utiliser "sudo". Donc, vous voulez une ligne de commande comme:
sudo su - hduser
qui permettrait de faire ce que vous voulez, pourvu que vous aviez les lignes appropriées dans le fichier sudoers. Une ligne comme ceci:
hadoopmaster ALL=(ALL:ALL) NOPASSWD: su - hduser
devrait faire l'affaire.
S'avère, je n'ai pas besoin de l'utiliser, mais merci quand même! 🙂
J'ai trouvé un peu moyen plus facile de le faire. Dans
sudoers
utilisation de la lignehadoopmaster ALL=(hduser) NOPASSWD: /bin/sh
. Ensuite, vous pouvez simplement tapersudo -s -u hduser
pour passer au nouvel utilisateur.OriginalL'auteur Jim Nutt
J'ai ajouter un utilisateur= ranjith sur fichier /etc/sudoers comme,
Maintenant, nous pouvons utiliser,
Sa fonctionne pour moi et Maintenant je peux me connecter à la racine de mon utilisateur local "ranjith" directement.
OriginalL'auteur Ranjithkumar T