sudoコマンドの設定方法についてまとめます。
記事の目次
sudoの設定を変更する!
sudoの設定は、visudoコマンドを使用して変更します。実際に変更される設定ファイルは、「/etc/sudoers」です。
$ sudo visudo
パスワード再入力までの時間を変更する!
パスワード変更再入力までの時間を変更する方法です。「timestamp_timeout」の設定を追加して、分単位で設定します。
Defaults timestamp_timeout=10
環境変数を整える!
環境変数を整える設定です。「env_reset」によって、ユーザ環境の環境変数をリセットして、必要最小限の環境変数のみ有効になります。
Defaults env_reset
ユーザ環境の環境変数を引き継ぎたい場合は、「env_keep」で設定します。
Defaults env_keep="XXX YYY" Defaults env_keep+="ZZZ"
また、PATH変数も初期化されるので、必要なコマンドが実行できるように、必要なディレクトリのみを「secure_path」で指定します。
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
セキュリティ関連の設定を行う!
sudoのセキュリティ関連の設定を行います。
ロギングを行う!
sudoのロギングを行うようにします。
Defaults logfile=/var/log/sudo.log
バックグラウンドプロセス等のセキュリティを強化する!
入出力ロギングが無効の場合、コマンドの実行を仮想端末で行うように設定します。
Defaults use_pty
sudoによるコマンドの実行権限の設定を行う!
sudoによるコマンドの実行権限の設定を行います。基本的には、
ユーザ ホスト=[(ユーザ権限[:グループ権限])] [NOPASSWD:|PASSWD:] 実行するコマンド
以下は、rootの一般的な設定で、どんなコマンドでも実行できます。
root ALL=(ALL) ALL
実行権限のグループを指定する場合は、以下のように設定します。
root ALL=(ALL:ALL) ALL
グループで指定する場合は、グループ名の先頭に「%」を指定します。
%sudo ALL=(ALL:ALL) ALL
パスワード無しで実行できるようにするには、以下のようにNOPASSWDの指定を追加します。
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
特定のユーザ(sysusr01)がパスワード無しで特定のコマンド(cp)を実行できるようにするには、以下のように設定します。
sysusr01 ALL=NOPASSWD: /usr/bin/cp
追加の設定ファイルを配置する!
デフォルトの設定では、「/etc/sudoers.d」に追加の設定ファイルを配置できるようになっています。「#」で始まっていますが、コメントではないことに注意が必要です。
#includedir /etc/sudoers.d
おわりに
sudoの設定は、特に環境変数周りに慎重に設定して、シェルやコマンドの実行環境を整える必要があります。
関連記事
関連書籍(Amazon)