Как я могу заставить sudo всегда запрашивать пароль после пробуждения от приостановки?

Скажем, я выполняю команду с sudo , тогда, если я буду использовать sudo в течение следующих 15/5 минут (не уверен, как долго он меня помнит), он не будет запрашивать у меня пароль. Это только подскажет мне снова, если я не использовал его, по крайней мере, так долго.

Однако, если я приостановил работу своей машины, разбудил ее и запустил до истечения этого периода времени, я могу снова выполнить команду sudo и она не спросит меня о моем пароле, потому что я не позволил ей быть уверенным количество времени.

Итак, как я могу сделать это так, чтобы независимо от того, как долго я не использовал sudo , он обязательно подскажет мне пароль после приостановки, как только я войду в систему снова, даже если я все еще в этом временном интервале, 15/5 минут не использовать sudo еще не прошли?

Наиболее вероятно, что это сработает, чтобы заставить его выполнить команду для удаления всех кешей идентификации для sudo при выполнении определенной команды, которая выполняется при пробуждении.

Я запускаю Ubuntu GNOME 15.10 с GNOME 3.18.

От 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_user (замените user своим именем пользователя для удобства);
  2. Вставьте следующий скрипт (замените пользователя на имя пользователя):
 #!/bin/sh case $1/$2 in pre/suspend) su user -c 'sudo -K' ;; esac 
  1. Нажмите CTRL + O , ENTER и CTRL + 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_user (замените user своим именем пользователя для удобства);
  2. Вставьте следующий скрипт (замените пользователя на имя пользователя):
 #!/bin/sh case $1 in suspend) su user -c 'sudo -K' ;; esac 
  1. Нажмите CTRL + O , ENTER и CTRL + 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 

Только если вы параноик! Вы можете использовать опцию -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> 

Или вы можете просто оставить свой компьютер в металлическом ящике, охраняемом роботами 🙂

Еще один метод

Тип 'sudo visudo'

Перейдите к строке, которая гласит: «По умолчанию env_reset»

и измените на:

'По умолчанию env_reset, timestamp_timeout = 0

Затем сохраните файл.

Установив тайм-аут на 0, система будет запрашивать пароль каждый раз.