4

我想从hadoopmaster su 到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它会再次提示我输入密码。我该怎么办?

4

2 回答 2

11

您不要在 sudoers 文件中使用“su”,您需要使用“sudo”。因此,您需要一个命令行,例如:

sudo su - hduser

如果您在 sudoers 文件中有适当的行,那么您确实想要。像这样的一行:

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

应该做的伎俩。

于 2013-12-08T04:30:19.297 回答
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。

于 2013-12-08T04:37:09.290 回答