假设我用 执行一个命令sudo
,那么如果我sudo
在下一个命令中使用15/5分钟(不确定它能记住我多久)它不会提示我输入密码。如果我至少这么长时间没有使用密码,它才会再次提示我。
但是,如果我在该时间段结束之前暂停我的机器、唤醒它并登录,我可以再次执行sudo
命令,它不会要求我输入密码,因为我没有让它在一定时间内保持该状态。
那么,我怎样才能做到这一点,无论我多长时间没有使用sudo
,一旦我再次登录,它一定会在暂停后提示我输入密码,即使我仍然处于 15/5 分钟未使用的时间范围内sudo
?
最有可能起作用的是让它执行一个命令,以sudo
在唤醒时执行某个命令时删除所有身份缓存。
我正在运行带有 GNOME 3.18 的 Ubuntu GNOME 15.10。
答案1
从man sudo
:
-K, --remove-timestamp
Similar to the -k option, except that it removes the user's
cached credentials entirely and may not be used in conjunc‐
tion with a command or other option. This option does not
require a password. Not all security policies support cre‐
dential caching.
因此,您希望的是用户在sudo -K
每次系统挂起时运行。
Ubuntu 15.04+(systemd)
这可以在 Ubuntu 15.04+ 上通过将脚本放入 中来完成/lib/systemd/system-sleep/
。
- 运行
sudo nano /lib/systemd/system-sleep/disable_sudo_user
(user
为方便起见,请替换为您的用户名); - 粘贴以下脚本(替换
user
为您的用户的用户名):
#!/bin/sh
case $1/$2 in
pre/suspend)
su user -c 'sudo -K'
;;
esac
按CTRL+ O,ENTER和CTRL+ X;
跑步
sudo chmod o+x /lib/systemd/system-sleep/disable_sudo_user
;
要为休眠/混合睡眠启用此功能,请使用此脚本:
#!/bin/sh
case $1 in
pre)
su user -c 'sudo -K'
;;
esac
以前的 Ubuntu 版本 (Upstart)
这可以在以前的 Ubuntu 版本中通过将脚本放入 中来完成/etc/pm/sleep.d/
。
- 运行
sudo nano /etc/pm/sleep.d/disable_sudo_user
(user
为方便起见,请替换为您的用户名); - 粘贴以下脚本(替换
user
为您的用户的用户名):
#!/bin/sh
case $1 in
suspend)
su user -c 'sudo -K'
;;
esac
按CTRL+ O,ENTER和CTRL+ X;
跑步
sudo chmod o+x /etc/pm/sleep.d/disable_sudo_user
;
要为休眠模式启用此功能,请使用此脚本:
#!/bin/sh
case $1 in
suspend|hybernate)
su user -c 'sudo -K'
;;
esac
答案2
只有当你那么偏执时才会这样!您可以使用-K
选项sudo
。
-K, --reset-timestamp
When used without a command, invalidates the user's cached credentials.
In other words, the next time sudo is run a password will be required.
This option does not require a password and was added to allow a user to revoke
sudo permissions from a .logout file.
When used in conjunction with a command or an option that may require a
password, this option will cause sudo to ignore the user's cached credentials.
As a result, sudo will prompt for a password (if one is required by the
security policy) and will not update the user's cached credentials.
Not all security policies support credential caching.
例如,
sudo -K <command>
或者你可以把你的电脑放在一个由机器人守卫的金属箱里:)
答案3
另一种方法
输入“sudo visudo”
转到“Defaults env_reset”这一行
并更改为:
'默认 env_reset,timestamp_timeout=0
然后保存文件。
通过将超时设置为 0,系统每次都会提示您输入密码。