sudoコマンド

CentOS7にsudoコマンドをインストールおよび設定した際の備忘録

◆sudoコマンドとは

 主にUNIX系のOSにおいて、ログインユーザが他のユーザ(一般的に特権ユーザ「root」)の権限でコマンドを実行する際に使用するコマンド

詳細は公式サイトを参照してください。

◆環境

サーバ(CentOS)のバージョン確認とsudoコマンドのインストール確認

$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

1行目:CentOSのバージョン確認

$ sudo
-bash: sudo: コマンドが見つかりません

1行目:sudoコマンドの存在確認
2行目:コマンドが存在しない

◆インストール

# yum install sudo

1行目:yumでインストール

◆sudoの設定

実際には、CentOSをインストールした際の初期設定で、root権限を使用できるように一般ユーザをwheelグループに追加しているため、sudoの設定をしなくてもsudoコマンドを使用することが出来ました。

■構文

ユーザ名 ホスト名=(実行権限) [NOPASSWD:] コマンド[, コマンド…]

ユーザ名:特定のユーザを指定する場合に設定する。グループを指定する場合は、「%グループ名」とする。
ホスト名:コマンドの実行を行うホスト名またはIPアドレスを指定する場合に設定する。指定しない場合は、「ALL」とする。
実行権限:コマンドの実行する権限を特定のユーザとして指定する場合に設定する。指定しない場合は、「ALL」とする。
NOPASWD:設定すると、sudoコマンド実行時にパスワード入力を求められなくなる。(任意)
コマンド:実行するコマンドを指定する場合に設定する。複数ある場合は、カンマで区切り記述する。指定しない場合は、「ALL」とする。

■設定

# 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

■追加

# usermod -aG wheel testuser

1行目:オプション「-G」のみだと変更になるので、「-a」を同時に指定して、セカンダリグループに追加

■確認

# groups testuser
testuser : testuser wheel

1行目:所属グループの確認
2行目:wheelグループが追加されている

◆sudoコマンドの実行

testuserで実行

$ sudo su -
[sudo] testuser のパスワード:
# whoami
root

1行目:testuserでsudoコマンドからsuコマンドでrootに移行
2行目:testuserのパスワードを入力
3行目:whoamiコマンドでユーザ名を確認
4行目:rootユーザであることを確認

◆ログの確認

sudoコマンドを実行したログを確認する場合

# 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行目:出力されたログ

いいね! & シェア お願いします。

コメントは受け付けていません。