如何在shell脚本中进行无密码切换到另一个用户

时间:2013-12-08 04:20:40

标签: linux ubuntu ubuntu-12.04 sudo sudoers

我想从hadoopmaster到hduser。当我在终端上这样做时,我会这样做:

su - hduser

然后要求我输入密码,然后我输入密码,然后进入hduser。如何在shell脚本中执行相同操作而不必担心密码?我尝试了sudoers文件方法:

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)

我这样做了,当我su hdusersu - hduser时,它会再次提示我输入密码。我该怎么办?

2 个答案:

答案 0 :(得分:8)

你不要在sudoers文件中使用“su”,你需要使用“sudo”。所以,你需要一个命令行,如:

sudo su - hduser

只要你在sudoers文件中有适当的行,你会想要它吗?像这样的一行:

hadoopmaster ALL=(ALL:ALL) NOPASSWD: su - hduser

应该这样做。

答案 1 :(得分:0)

我在/ etc / sudoers文件中添加了user = ranjith,如

 ranjith ALL=(ALL)       NOPASSWD: ALL

现在我们可以使用,

 "sudo, sudoedit - execute a command as another user"

 [ranjith@ranjith ~]$ sudo -i
 # id
 uid=0(root) gid=0(root) groups=0(root)

它为我工作,现在我可以直接从我的本地用户“ranjith”登录到root。