CentOS7にsudoコマンドをインストールおよび設定した際の備忘録
◆sudoコマンドとは
主にUNIX系のOSにおいて、ログインユーザが他のユーザ(一般的に特権ユーザ「root」)の権限でコマンドを実行する際に使用するコマンド
詳細は公式サイトを参照してください。
◆環境
サーバ(CentOS)のバージョン確認とsudoコマンドのインストール確認
1 2 | $ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) |
1行目:CentOSのバージョン確認
1 2 | $ sudo -bash: sudo: コマンドが見つかりません |
1行目:sudoコマンドの存在確認
2行目:コマンドが存在しない
◆インストール
1 | # yum install sudo |
1行目:yumでインストール
◆sudoの設定
実際には、CentOSをインストールした際の初期設定で、root権限を使用できるように一般ユーザをwheelグループに追加しているため、sudoの設定をしなくてもsudoコマンドを使用することが出来ました。
■構文
ユーザ名 ホスト名=(実行権限) [NOPASSWD:] コマンド[, コマンド…]
ユーザ名:特定のユーザを指定する場合に設定する。グループを指定する場合は、「%グループ名」とする。
ホスト名:コマンドの実行を行うホスト名またはIPアドレスを指定する場合に設定する。指定しない場合は、「ALL」とする。
実行権限:コマンドの実行する権限を特定のユーザとして指定する場合に設定する。指定しない場合は、「ALL」とする。
NOPASWD:設定すると、sudoコマンド実行時にパスワード入力を求められなくなる。(任意)
コマンド:実行するコマンドを指定する場合に設定する。複数ある場合は、カンマで区切り記述する。指定しない場合は、「ALL」とする。
■設定
1 2 3 4 5 6 7 8 9 10 11 12 | # visudo ## The COMMANDS section may have other options added to it. ## ## Allow root to run any commands anywhere root ALL=(ALL) ALL ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL |
1行目:visudoコマンドで設定ファイル「/etc/sudoers」が開く
6行目:rootは、すべてのコマンドが実行できる設定
9行目:wheelグループに所属するユーザは、すべてのコマンドが実行できる設定
12行目:9行目と同様だが、パスワード入力を求められなくする設定
6、9行目は、デフォルトで有効になっていました。
12行目は、デフォルトで無効(コメントアウト)になっています。有効にする場合は、9行目をコメントアウトで無効にして、12行目を有効にする必要があります。
◆グループの追加と確認
ユーザ名:testuser
■追加
1 | # usermod -aG wheel testuser |
1行目:オプション「-G」のみだと変更になるので、「-a」を同時に指定して、セカンダリグループに追加
■確認
1 2 | # groups testuser testuser : testuser wheel |
1行目:所属グループの確認
2行目:wheelグループが追加されている
◆sudoコマンドの実行
testuserで実行
1 2 3 4 | $ sudo su - [sudo] testuser のパスワード: # whoami root |
1行目:testuserでsudoコマンドからsuコマンドでrootに移行
2行目:testuserのパスワードを入力
3行目:whoamiコマンドでユーザ名を確認
4行目:rootユーザであることを確認
◆ログの確認
sudoコマンドを実行したログを確認する場合
1 2 | # journalctl /bin/sudo 9月 03 19:26:55 marusv.maruweb.jp.net sudo[26946]: testuser : TTY=pts/0 ; PWD=/home/testuser ; USER=root ; COMMAND=/bin/su - |
1行目:journalctlコマンドの引数にsudoを指定
2行目:出力されたログ