sudo権限を使用してコマンドラインでいくつかの管理タスクを実行しているときに、sudoパスワードを入力すると、コマンドが正常に実行されることに気付いたかもしれません。最初のsudoコマンドの直後に実行される後続のコマンドの場合、パスワードは必要ありません。ただし、しばらく待ってからsudoを使用してコマンドを再度実行すると、パスワードの入力を求められます。これはすべて、デフォルトで15分のsudoセッションのタイムアウト制限が原因で発生します。この制限時間は、パスワードを使用してsudoコマンドを入力した場合、sudo特権が15分間保持されることを意味します。したがって、後続のコマンドでパスワードを再度入力するように求められることはありません。 15分後、実行しようとするsudoコマンドに対してsudoパスワードを再入力する必要があります。
通常のシステムユーザーまたは管理者は、sudoセッションのこのデフォルトのタイムアウト制限を延長または短縮することをお勧めします。この記事では、sudoセッションのデフォルトの時間制限を変更する方法を学習します。そのためには、sudoersファイルに変更を加える必要があります。この手順はDebian10システムで実行しましたが、Ubuntuなどの他のLinuxディストリビューションでも機能することに注意してください。古いバージョンのDebianでも同じ手順に従うことができます。
sudoセッションの時間を指定します
まず、DebianOSでターミナルを開きます。デスクトップの左上隅にある[アクティビティ]タブに移動します。次に、検索バーにキーワード terminal を入力します 。検索結果が表示されたら、ターミナルアイコンをクリックします。
ターミナルで、次のコマンドを入力してsudoersファイルを編集します。
$ sudo visudo
テキストエディタでsudoersファイルを編集しないでください。代わりに、この目的のために上記の方法を使用してください。
パスワードの入力を求められたら、sudoユーザーのパスワードを入力します。次のスクリーンショットに示すように、Sudoersファイルはデフォルトでnanoエディターで開きます。次に、sudoersファイルで次の行を探します。
Defaults env_reset
timestamp_timeout =x を追加して、上記の行を編集します その終わりまで。次のようになります:
Defaults env_reset timestamp_timeout=x
ここで、xは、sudoパスワードを再度要求する前に待機するタイムアウト値です。 sudoコマンドを実行するたびにシステムがパスワードを要求するようにする場合は、xの値を0に設定します。システムがsudoパスワードを要求しないようにする場合は、xの値を-1に設定します。
ここでは、sudoプロンプトのタイムアウト値を15分から5分に減らします。そのために、次のようにxを5に置き換えました。
Defaults env_reset,timestamp_timeout=5
完了したら、Ctrl+oとCtrl+xを押して、ファイルの保存と終了を同時に行います。
sudoセッションを端末が閉じるまで続くように設定します
単一のコマンドを使用して、ターミナルが開いている時間に関係なく、ターミナルを閉じるまでターミナルセッションを継続させることができます。次のコマンドを実行した後、sudoコマンドのパスワードの入力を求められることはありません。
$ sudo -s
sudoセッションを終了します
sudoのパスワードを入力すると、sudoersファイルで定義されているタイムアウト制限の前でもsudoセッションを一時停止できます。これを行うには、次のコマンドを使用します。
$ sudo –k
ターミナルセッション中に「sudo–s」コマンドを実行した場合、上記のコマンドはセッションを終了しないことに注意してください。
これですべてです。 sudoセッションの制限時間を変更する必要があるときに役立つことを願っています。必要なのは、sudoersファイルに1行追加するだけです。