Ubuntu 15.04+(systemd)

Ubuntu 15.04+(systemd)

假设我用 执行一个命令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/

  1. 运行sudo nano /lib/systemd/system-sleep/disable_sudo_useruser为方便起见,请替换为您的用户名);
  2. 粘贴以下脚本(替换user为您的用户的用户名):
#!/bin/sh
case $1/$2 in
    pre/suspend)
        su user -c 'sudo -K'
        ;;
esac
  1. CTRL+ OENTERCTRL+ X

  2. 跑步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/

  1. 运行sudo nano /etc/pm/sleep.d/disable_sudo_useruser为方便起见,请替换为您的用户名);
  2. 粘贴以下脚本(替换user为您的用户的用户名):
#!/bin/sh
case $1 in
    suspend)
        su user -c 'sudo -K'
        ;;
esac
  1. CTRL+ OENTERCTRL+ X

  2. 跑步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,系统每次都会提示您输入密码。

相关内容