ユーザー権限昇格設定
ROOTアカウントのパスワードを共有して利用する事はセキュリティ上問題があり、 管理もしにくくなるためSUDO機能を利用することでROOTパスワードの多人数利用を防ぎ、ROOT権限で実行できるコマンドを制限する
SUDOの基本設定
- パスワードキャッシュの無効化
sudoはでデフォルトで入力されたパスワードキャッシュを5分間保持する、
セキュリティ上パスワードのキャッシュを持たれるのは良くないためキャッシュを無効化する
# visudo -f /etc/sudoers.d/default
Defaults timestamp_timeout = 0
- 試行回数の制限
デフォルトではsudo時の認証は3回まで失敗する事が出来る
その回数を任意の回数に制限
# visudo -f /etc/sudoers.d/default
Defaults passwd_tries = 3
- リモートコマンドの実行許可
デフォルトでsudoはttyを持たない接続からの実行はできない
そうあるべきですが、JenkinsなどCIツールで利用する場合無効化することもできる
# visudo
Defaults requiretty
SUDOコマンド制限
- グループ単位で指定する場合
# visudo -f /etc/sudoers.d/hostmaster
%グループ名 ALL=(ALL) ALL
- ユーザー単位で指定する場合
User_Alias
変数を利用して複数ユーザーに対して同じ権限を与える
# visudo -f /etc/sudoers.d/hostmaster
User_Alias HOSTMASTER = ユーザー名
HOSTMASTER ALL=(ALL) ALL
- コマンド単位で指定する場合
コマンドを指定してsudo制御したい場合は下記のように記述
下記の場合READ
変数に入れたコマンドはNOPASSWD
パスワード認証無しでROOT権限実行を許可
Cmnd_Alias READ = /bin/cat, /bin/more, /bin/grep, /bin/ls, /usr/bin/diff, /bin/find, /usr/bin/tail, /bin/cp
%グループ名 ALL = (root) NOPASSWD: READ