LoginSignup
0
0

More than 1 year has passed since last update.

【Linux】sudoを利用する為の設定

Last updated at Posted at 2023-03-26

sudoの権限をユーザーに付与する。

一般ユーザーが管理者権限や他ユーザー権限で、コマンドを実行する為にはsudoコマンドを利用します。
sudoコマンドを利用する為には、いくつか方法があるので記載していきます。

wheelグループに属するユーザーを作成する。

wheelグループに属するユーザーは、sudoコマンドを利用する事が出来ます。
visudoコマンドを実行して、ファイル内に下記のような記載がある事を確認します。

sudoersファイル
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

既存のユーザーを、wheelグループに加入させます。

セカンダリに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
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コマンドを実行して、下記のような文言を追記します。

sudoersファイル追記
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を確認した事が記録されています。

log
[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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0