$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset, timestamp_timeout=120, pwfeedback
#Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
如其他答案所述,
sudo
可以在缓存的凭据时间戳上设置超时。这可以使用Defaults
in专门针对给定命令完成sudoers
:永远记得
sudoers
用visudo
. 我推荐一个插入文件/etc/sudoers.d
而不是直接编辑/etc/sudoers
。例如:从手册页
sudoers
:请注意,它确实说您可以影响“以特定用户身份运行的命令”,但没有提及由特定用户运行的命令,因此可能无法仅为您的用户限制它。手册页中的示例不包含任何内容。
您可以使用
k
选项 withsudo
来重置时间戳。如果
sudo -k
用作命令,它将立即使缓存的凭据过期/无效。但是,如果
sudo -k
与某些命令一起使用,例如 ,sudo -k rm /some/file
即使某些凭据已被缓存,shell 也会要求输入密码。在这种情况下,不会缓存新凭据。这意味着如果sudo
在此之后执行另一个命令,它不会要求输入密码(如果之前缓存了凭据)。从sudo 的手册页:
如果您想在不每次都
sudo
使用的情况下为特定命令询问密码,您可以在. 例如,来自pa4080 的评论:k
.bashrc
您可以将 sudo 设置为始终要求输入密码:
在我的配置中,我将 sudo 超时设置为 2 小时(120 分钟),然后再次要求输入密码。将其设置为
0
每次使用时都需要密码sudo
rm
包装脚本前段时间我为该
rm
命令编写了一个包装脚本:一些显着的特点:
rm
调用时都必须使用加密密码,除非在批处理作业(如sudo apt-get
或)中使用该密码sudo update-grub
。rm
使用它都会记录到journalctl
和/var/log/syslog
。