sudoの権限をユーザーに付与する。
一般ユーザーが管理者権限や他ユーザー権限で、コマンドを実行する為にはsudo
コマンドを利用します。
sudoコマンドを利用する為には、いくつか方法があるので記載していきます。
wheelグループに属するユーザーを作成する。
wheelグループに属するユーザーは、sudoコマンドを利用する事が出来ます。
visudo
コマンドを実行して、ファイル内に下記のような記載がある事を確認します。
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
既存のユーザーを、wheelグループに加入させます。
[root@localhost /]# usermod --append -G wheel test_01
[root@localhost /]# id test_01
uid=1000(test_01) gid=1000(test_01) groups=1000(test_01),10(wheel),1001(test_02)
追加されたユーザーで、sudoコマンドを利用出来る事を確認して下さい。
/etc/sudoers.dに設定ファイルを作成する。
/etc/sudoers.d
配下に、設定ファイルを作成します。
設定ファイル内に、ユーザー名 ホスト名=(実行ユーザー名) コマンド Or %グループ名 ホスト名=(実行ユーザー名) コマンド
を記載します。
試しに test_01ユーザーがroot権限 localhost.localdomain上で cat /var/log/messages
を出来るようにします。
[root@localhost /]# visudo -f /etc/sudoers.d/test_01
[root@localhost sudoers.d]# cat test_01
test_01 localhost.localdomain=(root) /bin/cat /var/log/messages
上記を作成後に、コマンドを実行出来るかを確認します。
tailとcatを使用して、messagesを見てみます。
tailを実行許可していないので失敗しましたが、catは実行出来ています。
[test_01@localhost ~]$ sudo tail /var/log/messages
[sudo] test_01 のパスワード:
残念ですが、ユーザー test_01 は'/bin/tail /var/log/messages' を root として localhost.localdomain 上で実行することは許可されていません。
[test_01@localhost ~]$ sudo cat /var/log/messages
[sudo] test_01 のパスワード:
Mar 26 21:25:35 localhost systemd-logind: Removed session 4.
Mar 26 21:25:35 localhost systemd: Removed slice User Slice of test_01.
Mar 26 21:25:39 localhost systemd: Created slice User Slice of test_01.
Mar 26 21:25:39 localhost systemd: Started Session 5 of user test_01.
Mar 26 21:25:39 localhost systemd-logind: New session 5 of user test_01.
Mar 26 21:25:50 localhost su: (to root) test_01 on pts/0
またsudoersファイル
を直接編集する方もございます。
visudo
コマンドを実行して、下記のような文言を追記します。
test_01 localhost.localdomain=(root) /bin/cat /var/log/messages
vimで編集する事も出来ますが、visudo
コマンドが推奨されています。
visudo
コマンドは構文チェック機能がございます。
エラーがある状態でファイル保存すると、sudo
コマンドが恐らく使えなくなる可能性があります。なので、構文チェック機能があるvisudo
コマンドが推奨されているのかと思われます。
試しにエラーのある状態でファイルを保存すると、sudo
コマンドが使えなくなりました。※rootユーザーだったので、再度ファイルを編集して使えるようにしました。
[root@localhost ~]# visudo
>>> /etc/sudoers: 構文エラー near line 1 <<<
次は何でしょうか?
オプション:
e -- sudoers ファイルを再度編集します
x -- sudoers ファイルへの変更を保存せずに終了します
Q -- sudoers ファイルへの変更を保存して終了します (*危険です!*)
次は何でしょうか? Q
[root@localhost ~]# sudo
>>> /etc/sudoers: 構文エラー near line 1 <<<
sudo: /etc/sudoers 内 1 行付近で構文解析エラーが発生しました
sudo: 有効な sudoers のソースが見つかりません。終了します
sudo: ポリシープラグインを初期化できません
sudoコマンドの実行履歴
/var/log/secure
にsudoコマンドの実行履歴が確認出来ます。
test_01ユーザーが、catコマンドでmessagesを確認した事が記録されています。
[root@localhost ~]# cat /var/log/secure
Mar 26 22:46:17 localhost sudo: test_01 : TTY=pts/0 ; PWD=/home/test_01 ; USER=root ; COMMAND=/bin/cat /var/log/messages