sudo 记住命令列表的密码?

719*_*016 2 command-line sudo

Linux 中有没有办法让sudo命令记住用户在第一行输入的密码?

例如,对于用户必须输入的命令列表,其中一些需要sudo前缀,如何确保如果用户一次性将指令复制并粘贴到终端中,只询问密码一次?

例子:

mkdir ~/acpiinfo ; cd ~/acpiinfo
sudo acpidump > acpidump.txt
# enter password 
sudo acpixtract acpidump.txt
ls *.dat | while read i; do iasl -d "${i}"; done
pid=`sudo dmidecode -s system-product-name`
vid=`sudo dmidecode -s system-version`
name=$pid.$vid
mkdir "${name}" && cp *.dsl "${name}"/ 
tar czf "${name}.tar.gz" "${name}"/ && ls -l "$( pwd )/${name}".tar.gz
Run Code Online (Sandbox Code Playgroud)

Cha*_*ler 9

它应该默认执行此操作。从 sudo 联机帮助页:

一旦用户通过身份验证,时间戳就会更新,然后用户可以在没有密码的情况下使用 sudo 一小段时间(除非在 sudoers 中被覆盖,否则为 5 分钟)。

如果您的系统没有执行此操作,请检查/etc/sudoers. 从 sudoers 联机帮助页:

时间戳超时

在 sudo 再次要求输入密码之前可以经过的分钟数。如果分钟粒度不够,超时可以包括小数部分,例如 2.5。默认值为 5。将此设置为 0 以始终提示输入密码。如果设置为小于 0 的值,则用户的时间戳将永不过期。这可用于允许用户分别通过 sudo -v 和 sudo -k 创建或删除自己的时间戳。

所以听起来timestamp_timeout变量可能已设置为 0。启动visudo并注释该行或将其设置为您喜欢的内容。