我想知道是否可以在命令行(最好在提示符中)指示sudo 模式是否打开。
通过sudo 模式,我的意思是我已经在这个 shell 会话中正确输入了一次密码,它还没有过期,但仍然被缓存。
换句话说,我能否以某种方式判断sudo
我将要运行的命令是询问我的密码还是使用缓存的凭据?
我想知道是否可以在命令行(最好在提示符中)指示sudo 模式是否打开。
通过sudo 模式,我的意思是我已经在这个 shell 会话中正确输入了一次密码,它还没有过期,但仍然被缓存。
换句话说,我能否以某种方式判断sudo
我将要运行的命令是询问我的密码还是使用缓存的凭据?
很长一段时间,我一直在使用
您可以尝试这样做,但最近的更新似乎已经打破了这一点,因为我现在遇到了分段错误。
你可以试试
sudo -n true 2> /dev/null
(不-v
)。这似乎对我有用,而无需更新超时。您可以通过各种方式在提示符中执行此操作,包括:
这取决于
promptvars
默认启用的选项。请注意,一旦发出提示,指示器就不会再次更新。因此,如果提示一直存在,直到超时到期,它可能表明
sudo
即使它已到期,它仍处于活动状态。没有命令可以直接显示缓存凭据的剩余时间,您必须编写脚本。
来自https://unix.stackexchange.com/questions/115506/sudo-testing-for-credentials
如果密码被缓存,将给出退出值 0,您可以修改该链接中的脚本或编写自己的脚本。
或者,时间戳存储在其中,
/var/lib/sudo
因此您可能也可以编写一个脚本来显示或检查时间戳。