2017-05-26 85 views
1

我试图运行,而不成为苏用户的脚本,我使用这个命令:如果我使用这个命令为“SCP“回声‘密码’|须藤-S <command>”需要密码

echo "password" | sudo -S <command> 

“,”mv“,”whoami“命令,该命令工作得很好,但是当我使用”chmod“时,该命令会为我的用户请求密码。我不输入密码,并且指令工作。我的问题是系统向我要密码。我不希望系统要求输入密码。

问题ss是这样的:

[[email protected] test-dir]$ ls -lt 
total 24 
--wx-wx-wx 1 root root 1397 May 26 12:12 file1 
--wx-wx-wx 1 root root 867 May 26 12:12 script1 
--wx-wx-wx 1 root root 8293 May 26 12:12 file2 
--wx-wx-wx 1 root root 2521 May 26 12:12 file3 

[[email protected] test-dir]$ echo "myPassw0rd" | sudo -S chmod 111 /tmp/test-dir/* 
[sudo] password for myLocalUser: I DONT WANT ASK FOR PASSWORD 

[[email protected] test-dir]$ ls -lt 
total 24 
---x--x--x 1 root root 1397 May 26 12:12 file1 
---x--x--x 1 root root 867 May 26 12:12 script1 
---x--x--x 1 root root 8293 May 26 12:12 file2 
---x--x--x 1 root root 2521 May 26 12:12 file3 
+0

我不能说如何重现这一点。 'sudo -S'对于需要输入的程序有点不好,因为它们的stdin被连接到密码来自的同一个管道。但'chmod'不应该期望输入,AFAIK。如果你先用'sudo -s'打开一个shell,然后执行'chmod 111 ...',那么有问题的命令会做什么?与其他有用的程序相比,是否有一些不同? – ilkkachu

回答

2

可以使用sudoers文件,位于/ etc/sudoers中,可以允许特定用户执行命令作为根没有密码。

myLocalUser ALL =(ALL)NOPASSWD:/ bin中/ CHMOD

利用该线需要用户myLocalUser可以执行CHMOD作为根无需输入密码。

但是这也打破了系统安全的一部分,因此请注意不要太多,尽量避开任务。

sudoers information

+0

感谢您的答案jar3d,但我想suoders文件一样。正如你所说,这是一个安全问题。我只想使用** echo“mypass”... **命令而不询问密码。 –

+0

如果要执行的命令是静态的,则可以使用这些命令创建一个shell脚本,并在sudoers中允许使用此脚本,这样就可以很好地保护它。 – jar3d

+0

其实我会用这个命令从远端的新服务器。这些服务器是主要银行应用程序的服务器,所以我不能更改sudoers文件中的任何内容。我不知道为什么其他命令(如mv,cp)可以很好地工作,但chmod要求输入密码:) –