是否可以编写一个无需输入密码即可运行su
或命令的脚本?sudo
我用谷歌搜索,它说su
不会从缓冲区读取密码。那么有什么解决办法吗?
答案1
据我所知有两种方法:
好主意
为特定用户或组进行设置时sudo
,可以使用文件ALL=NOPASSWD
中的选项/etc/sudoers
。
有关如何执行此操作的一些提示:
馊主意
您可以使用通过标准输入而不是终端设备提供密码的选项sudo
。-S
例如,您可以将密码写在文件中,然后执行cat myPass.txt | sudo -S your_command
.
答案2
您可以expect
为此使用:
#!/usr/bin/expect
set password "mypassword"
spawn sudo mkdir -v newdir
expect "Password:"
send -- "$password\n"
expect "mkdir: created directory 'newdir'"