Linuxコマンド - sudo
概要
sudoコマンド (substitute user do または superuser do) とは、一時的に管理者権限 (root権限) でコマンドを実行するための重要なツールである。
基本的な使用方法は、実行するコマンドの前にsudoを付加する。
# 使用例 sudo zypepr update
sudoコマンドを実行する場合、パスワードの入力が求められる。
これは、セキュリティのため、sudoを使用する場合にユーザ認証が必要となるためである。
sudoのメリットを以下に示す。
- システムの安全性が向上する (常時root権限での操作を避けられる)
- 管理者権限の使用履歴が記録される。
- 特定のユーザに限定した権限付与が可能である。
設定ファイルである/etc/sudoersでは、どのユーザがsudoを使用できるかどうか、どのコマンドを実行できるかどうかを細かく制御することができる。
ただし、設定ファイルの構文エラーを防ぐため、このファイルの編集にはvisudoコマンドを使用することが推奨される。
sudoコマンドの使用には責任が伴うことに注意する。
誤った使用はシステムに重大な影響を与える可能性があるため、実行前に必ずコマンドの内容を確認することが重要である。
また、セキュリティにおいて、sudoコマンドの実行履歴が/var/log/auth.logに記録されるため、システム管理者は誰がいつ何の操作を行ったかを追跡できる。
開発やテスト環境では、sudo suコマンドでroot権限のシェルを開始することができるが、本番環境ではセキュリティリスクを避けるため、必要最小限のsudoコマンドの使用に留めることが推奨される。
設定の確認
sudoers設定ファイルの設定を確認することができる。
sudo -l
パスワード認証のタイムアウト
パスワード認証のタイムアウト時間において、デフォルトでは15分に設定されている。
この時間を変更する場合は、sudoers設定ファイルを編集する。
sudo visudo
# 例. 30分に設定する場合 Defaults timestamp_timeout=30
# 特定のユーザにのみ適用する場合 Defaults:<ユーザ名> timestamp_timeout=30
timestamp_timeoutの設定値を以下に示す。
- timestamp_timeout=0
- 毎回パスワードを要求する。
- timestamp_timeout=30
- 30分間パスワード入力を省略する。
- timestamp_timeout=-1
- タイムアウトなし (非推奨)
※注意
タイムアウト時間を長く設定する場合、セキュリティリスクが高まる可能性がある。
システムのセキュリティポリシーに従って適切な値を設定することを推奨する。