这里的文件不适用于sudo su

时间:2011-12-03 16:11:59

标签: bash

我试图编写一个setup.sh脚本,在安装应用程序时搜索并安装所需的组件。如果找不到所需的组件,则会提示安装它。我已经使用了sudo apt-get install,我想将用户提供的密码传递给sudo,如下所示:

read passwd
sudo apt-get install clisp <<EOF
$passwd 
$passwd
EOF

但这不起作用。输入密码未传递给sudo。为什么这不会发生?我的使用有误吗?

1 个答案:

答案 0 :(得分:4)

密码不是从标准输入读取,而是从“当前终端”读取。这不能通过重定向来改变。但是sudo提供了一个选项-S,它从标准输入而不是从终端读取密码。

编辑:解决整个问题的更好方法是避免截取密码。 sudo如果需要密码本身则会询问密码。使用-A选项,您还可以为此问题提供图形用户界面。由于sudo为该输入保留时间戳,因此在接下来的15分钟内不会要求输入密码(默认情况下,即可配置)。因此,多个sudo来电也不是问题。

相关问题