请考虑以下代码:
alias fast='echo "password" | sudo -S apt-get update && sudo -S apt-get upgrade'
我使用它时还没有遇到问题,但是如果第一步apt-get update
花费了很长时间,那么当apt-get upgrade
命令最终运行时密码是否会失效?
答案1
但是,如果第一步
apt-get update
花费了很长时间,那么当apt-get upgrade
命令最终运行时密码是否会失效?
答案是肯定的,sudo
可能会超时并再次要求您输入密码。
另一种方法仍然不安全(但至少它不需要你输入密码),详见如何在没有密码的情况下使用 sudo 运行应用程序?
如果您想采用以明文形式写下密码的方法,请考虑将命令链接在一起并用来
sh
执行它:echo password | sudo sh -c "apt-get update && apt-get upgrade"
这样,
sudo
只需要输入一次密码,并sh
以 root 身份执行。然后,任何由其运行的程序sh
都会自动以 root 身份运行。最后,您可以将密码两次传递给单独的程序:
echo password | sudo apt-get update && echo password | sudo apt-get upgrade
答案2
我很确定 sudo 的超时时间是 15 分钟。
你可以改变它
sudo visudo
将超时添加到此行
Defaults env_reset
所以20分钟
Defaults env_reset,timestamp_timeout=20
答案3
我现在在用手机,所以无法写出详细的答案。不过,还有另一种可能,可能是一个合适的折衷方案。
您可以将 sudo 配置为不要求输入 apt-get 命令的密码。您可以使用 visudo 命令进行设置。由于我现在无法访问我的 Linux 机器,我无法告诉您如何操作,但您可以尝试阅读 sudoers、visudo 的手册页以及这些页面引用的任何内容。
警告:这样做可能会让任何人都运行任何 apt-get 命令。您必须判断此方法的便利性是否大于额外的安全风险。