我想从hadoopmaster su到hduser。 当我在terminal上做的时候,我会这样做:
su - hduser
然后问我input密码,然后进入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 hduser
或su - hduser
,它再次提示我input密码。 我该怎么办?
您不要在sudoers文件中使用“su”,您需要使用“sudo”。 所以,你需要一个像下面这样的命令行:
sudo su - hduser
如果你在sudoers文件中有适当的行,这将会是你想要的。 像这样的一行:
hadoopmaster ALL=(ALL:ALL) NOPASSWD: su - hduser
应该做的伎俩。
我在/ 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”登录到根。