如何从脚本提供带密码的sudo?

时间:2014-07-22 16:06:24

标签: linux bash file-permissions sudo

请注意:这是在我的本地计算机上运行的来宾VM(VBox),我并不担心安全问题。

我正在编写一个脚本,它将作为myuser用户在Linux(Ubuntu)VM上执行。该脚本将在/etc/myapp下创建一个非常大的目录树。目前我必须手动执行所有操作,并且首先在myuser下提供/etc recrusive rwx 权限,如下所示:

sudo chmod -R 777 /etc
[sudo] password for myuser:  <now I enter the password and hit ENTER>

我的问题:我如何编写一个bash脚本,为我的密码提供sudo命令,以便我可以执行bash myscript.sh并为我做出必要的权限更改?

3 个答案:

答案 0 :(得分:3)

(BASH)
好的,如果你必须这样做,(记住安全警告):

  

$ sudo -S&lt; &lt;(echo&#34;&lt; your password&gt;&#34;)&lt; your sudo command&gt;

答案 1 :(得分:1)

您可以使用expectautoexpect。不过,这是一个坏主意。

永远不要将系统密码写入。至少,不是在所述系统上的文件上。在已知需要root访问权限的安装脚本上更少。你让自己成为一个轻松的目标。

您要做的是通过sudo配置/etc/sudoers/以允许完全相同的用户在没有密码的情况下执行完全相同的脚本:< / p>

myuser ALL=(ALL) NOPASSWD : /path/to/script

注意:

  • 如果您删除了/path/to/script部分,myuser将能够sudo没有密码的任何内容。

  • 如果您更改myuser的{​​{1}},则每个人都可以在没有密码的情况下运行该脚本。

答案 2 :(得分:1)

如果你说,完全不关心安全......

运行visudo以编辑/etc/sudoers并进行验证。添加以下行:

ALL ALL=(ALL) NOPASSWD: ALL

这将阻止sudo为任何用户提供任何命令的密码。

相关问题