web-dev-qa-db-ja.com

一時停止から復帰した後、Sudoに常にパスワードを要求させるにはどうすればよいですか?

Sudoを指定してコマンドを実行し、次の期間にSudoを使用すると 15/5分 (覚えている期間がわからない)プロンプトが表示されませんパスワードを教えてください。少なくともその間使用しなかった場合にのみ、再度プロンプトが表示されます。

ただし、その期間が終了する前にマシンをサスペンドし、ウェイクアップし、ログインした場合、Sudoコマンドを再度実行するだけで、パスワードを聞かないため、パスワードを要求されません。一定の時間の間。

Sudoを使用していない期間に関係なく、まだログインしている場合でも、サスペンド後に再度ログインすると、パスワードの入力を求められます。 Sudoを使用しない15/5分がまだ過ぎていない時間枠ですか?

動作する可能性が最も高いのは、ウェイクアップ時に実行される特定のコマンドの実行時に、SudoのすべてのIDキャッシュを削除するコマンドを実行させることです。

Ubuntu GNOME 15.10とGNOME 3.18を実行しています。

14
user364819

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)

これは、/lib/systemd/system-sleep/にスクリプトを配置することにより、Ubuntu 15.04以降で実行できます。

  1. Sudo nano /lib/systemd/system-sleep/disable_Sudo_userを実行します(便宜上、userをユーザーのユーザー名に置き換えてください);
  2. 次のスクリプトを貼り付けます(userをユーザーのユーザー名に置き換えます):
#!/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)

これは、/etc/pm/sleep.d/にスクリプトを配置することにより、以前のUbuntuバージョンで実行できます。

  1. Sudo nano /etc/pm/sleep.d/disable_Sudo_userを実行します(便宜上、userをユーザーのユーザー名に置き換えてください);
  2. 次のスクリプトを貼り付けます(userをユーザーのユーザー名に置き換えます):
#!/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
18
kos

あなたがその妄想者である場合のみ!Sudo-Kオプションを使用できます。

-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
Edward Torvalds

さらに別の方法

「Sudo visudo」と入力します

「Defaults env_reset」という行に移動します

および変更:

'デフォルトenv_reset、timestamp_timeout = 0

次に、ファイルを保存します。

タイムアウトを0に設定すると、システムは毎回パスワードの入力を求めます。

1
Edgar Naser