LinuxやUnix系OSで管理者権限を一時的に取得できる sudo。そのオプションのひとつが sudo -v です。本記事では、sudo -v の意味と使いどころ、実際のコマンド例を解説します。
sudo -v の基本
sudo -v は、現在のユーザーの sudo 認証タイムアウトを更新(延長) するコマンドです。実行するとパスワード入力が求められ、認証に成功すれば、以降 sudo を使用する際のタイムアウトがリセットされます。
sudo -v
このコマンドは、実際に権限が必要な操作を行う前に認証だけを先に済ませておくと便利です。
主な用途
- パスワードの再確認:長時間作業していると sudo のタイムアウトが切れることがあります。
sudo -vで再度認証し、作業の中断を防げます。 - スクリプト内での事前認証:スクリプト実行中に複数回 sudo が必要になる場合、最初に
sudo -vを呼び出すことで、途中でパスワード入力を求められるのを防げます。 - タイムアウト延長のテスト:システム管理者が sudo のタイムアウト設定(
timestamp_timeout)を確認・調整する際に使用します。
タイムアウトの延長
デフォルトでは sudo の認証は 5 分で失効しますが、環境変数 SUDO_TIMESTAMP_TIMEOUT を設定したり、/etc/sudoers の timestamp_timeout オプションで変更できます。sudo -v を実行すると、このタイマーがリセットされ、再び設定時間だけ有効になります。
スクリプトでの利用例
以下はシェルスクリプトで sudo -v を先に呼び出し、以降の sudo コマンドをパスワード入力なしで実行できる例です。
#!/bin/bash
# sudo の認証を先に取得
sudo -v
# 認証が成功したら、以降はパスワード不要で sudo を実行
sudo apt update
sudo apt upgrade -y
# 必要に応じて認証を延長(ループ内で定期的に呼び出す)
while true; do
sleep 300 # 5 分ごとに認証を更新
sudo -v
done &
このように sudo -v を活用すれば、インタラクティブなパスワード入力を最小限に抑え、スムーズな管理作業が可能になります。
まとめ
sudo -v は「sudo の認証を更新する」だけのシンプルなコマンドですが、作業効率やスクリプトの信頼性向上に大いに役立ちます。タイムアウト時間を把握し、必要に応じて sudo -v を適切に配置することで、煩わしいパスワード入力を防ぎましょう。