“回声‘密码’|须藤-S ”需要密码
我试图运行,而不成为苏用户的脚本,我使用这个命令:如果我使用这个命令为“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
可以使用sudoers文件,位于/ etc/sudoers中,可以允许特定用户执行命令作为根没有密码。
myLocalUser ALL =(ALL)NOPASSWD:/ bin中/ CHMOD
利用该线需要用户myLocalUser可以执行CHMOD作为根无需输入密码。
但是这也打破了系统安全的一部分,因此请注意不要太多,尽量避开任务。
感谢您的答案jar3d,但我想suoders文件一样。正如你所说,这是一个安全问题。我只想使用** echo“mypass”... **命令而不询问密码。 –
如果要执行的命令是静态的,则可以使用这些命令创建一个shell脚本,并在sudoers中允许使用此脚本,这样就可以很好地保护它。 – jar3d
其实我会用这个命令从远端的新服务器。这些服务器是主要银行应用程序的服务器,所以我不能更改sudoers文件中的任何内容。我不知道为什么其他命令(如mv,cp)可以很好地工作,但chmod要求输入密码:) –
我不能说如何重现这一点。 'sudo -S'对于需要输入的程序有点不好,因为它们的stdin被连接到密码来自的同一个管道。但'chmod'不应该期望输入,AFAIK。如果你先用'sudo -s'打开一个shell,然后执行'chmod 111 ...',那么有问题的命令会做什么?与其他有用的程序相比,是否有一些不同? – ilkkachu