pa4*_*080 20 command-line sudo password
有没有办法强制sudo命令每次使用时都要求输入密码sudo rm /path/file?
我想保护我自己免受愚蠢的错误,当我从历史中运行一些命令时,由于注意力不集中而犯下的错误。
sud*_*ace 25
如其他答案中所述,sudo可以在缓存的凭据时间戳上设置超时。这可以专门针对给定的命令使用Defaultsin 完成sudoers:
Defaults!/bin/rm timestamp_timeout=0
Run Code Online (Sandbox Code Playgroud)
永远记得sudoers用visudo. 我建议使用插入文件/etc/sudoers.d而不是/etc/sudoers直接编辑。例如:
sudo visudo -f /etc/sudoers.d/always-ask-pass-for-rm
Run Code Online (Sandbox Code Playgroud)
默认值
某些配置选项可以在运行时通过一行或多
Default_Entry行更改其默认值。这些可能会影响任何主机上的所有用户、特定主机上的所有用户、特定用户、特定命令或以特定用户身份运行的命令。请注意,每个命令条目可能不包含命令行参数。如果您需要指定参数,请定义 aCmnd_Alias并引用它。Run Code Online (Sandbox Code Playgroud)Default_Type ::= 'Defaults' | 'Defaults' '@' Host_List | 'Defaults' ':' User_List | 'Defaults' '!' Cmnd_List | 'Defaults' '>' Runas_List Default_Entry ::= Default_Type Parameter_List Parameter_List ::= Parameter | Parameter ',' Parameter_List Parameter ::= Parameter '=' Value | Parameter '+=' Value | Parameter '-=' Value | '!'* Parameter
请注意,它确实说您可以影响“以特定用户身份运行的命令”,但没有提及由特定用户运行的命令,因此可能无法仅对您的用户进行限制。联机帮助页中的示例不包含任何内容。
Kul*_*lfy 14
您可以使用k选项sudo来重置时间戳。
如果 sudo -k用作命令,它将立即使缓存的凭据过期/无效。
但是如果sudo -k与某些命令一起使用,例如,,sudo -k rm /some/file即使某些凭据已经缓存,shell 也会要求输入密码。在这种情况下,不会缓存新凭据。这意味着如果sudo在此之后执行另一个命令,它不会要求输入密码(如果以前缓存了凭据)。
-k [命令]
单独使用时,sudo 的 -k(kill)选项会使用户的缓存凭据无效。下次运行 sudo 时将需要密码。此选项不需要密码,添加此选项是为了允许用户从 .logout 文件中撤销 sudo 权限。并非所有安全策略都支持凭据缓存。
当与可能需要密码的命令或选项结合使用时,-k 选项将导致 sudo 忽略用户的缓存凭据。因此,sudo 将提示输入密码(如果安全策略需要密码)并且不会更新用户的缓存凭据。
如果你想在sudo不k每次都使用的情况下为特定命令询问密码,你可以在.bashrc. 例如,来自pa4080 的评论:
sudo() { if [[ $@ =~ ^rm ]]; then /usr/bin/sudo -k "$@"; else /usr/bin/sudo "$@"; fi; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4608 次 |
| 最近记录: |