どーも!marusukeです!
sudoコマンドの設定ファイルのsudoersファイルについて説明します!
sudoersファイルについて
sudoers
ファイルは、sudo
コマンドの動作を制御し、特定のユーザーやグループにsudo
コマンドの実行を許可する設定ファイルです
sudoersファイルの場所
sudoers
ファイルは、通常、/etc/sudoers
に配置されています。直接編集するのは推奨されず、visudo
コマンドを使用して編集します
visudo
コマンドで編集すると、編集時に構文エラーをチェックし、ファイルが壊れるのを防ぎます
sudoersファイルの編集
visudoコマンドを使用して編集
sudoersファイルを編集してみます
sudo visudo
出力例:
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.
## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using
## wildcards for entire domains) or IP addresses instead.
# Host_Alias FILESERVERS = fs1, fs2
# Host_Alias MAILSERVERS = smtp, smtp2
## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem
## Command Aliases
...以下省略
これは自分が使用しているサーバであるAWSのEC2(RHEL9)のsudoersファイルの内容の一部です
sudoersファイルの構文
sudoers
ファイルのエントリは、以下のような形式で記述されます:
<ユーザー> <ホスト>=(<ランアズユーザー>) <コマンド>
例: 基本的な書き方
alice ALL=(ALL) ALL
- alice: ユーザー名。ここでは、ユーザー
alice
が対象 - ALL: ホスト。どのホストでも有効
- (ALL): ランアズユーザー。どのユーザーとしてでも実行可能
- ALL: 許可されるコマンド。すべてのコマンドを実行可能
例: グループに対する書き方
%admin ALL=(ALL) ALL
- %admin: グループ
admin
のすべてのメンバーが対象。
例: 特定のコマンドのみ許可する書き方
bob ALL=(ALL) /usr/bin/apt-get update, /usr/bin/apt-get upgrade
- bob: ユーザー
bob
が対象。 - /usr/bin/apt-get update, /usr/bin/apt-get upgrade:
apt-get update
とapt-get upgrade
コマンドのみ実行可能
例: パスワードを要求しない書き方
bob ALL=(ALL) NOPASSWD: /usr/bin/apt-get update
- NOPASSWD:: このオプションを使用すると、指定されたコマンドを実行する際にパスワードの入力が不要になります
sudoersファイルの設定について
ホスト制限する書き方
特定のホストでのみ有効にすることができます
alice myhost=(ALL) ALL
- myhost: 特定のホスト
myhost
でのみ有効
コマンド制限する書き方
特定のコマンドを指定することができます
alice ALL=(ALL) /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
- /usr/bin/passwd [A-Za-z]*: 任意のユーザーのパスワードを変更可能
- !/usr/bin/passwd root: rootユーザーのパスワード変更は不可
エイリアスの使用
エイリアスを使用すると、sudoersファイルの設定を簡略化できます
ユーザーエイリアスの書き方
User_Alias ADMINS = alice, bob, charlie
ADMINS ALL=(ALL) ALL
- User_Alias ADMINS:
alice
、bob
、charlie
をADMINS
として定義
設定されたADMINSのユーザーたちは、すべてのコマンドでsudoコマンド実行可能になります
コマンドエイリアスの書き方
Cmnd_Alias SOFTWARE = /usr/bin/apt-get, /usr/bin/yum
alice ALL=(ALL) SOFTWARE
- Cmnd_Alias SOFTWARE:
apt-get
とyum
コマンドをSOFTWARE
として定義
設定されたユーザーaliceは/usr/bin/apt-get, /usr/bin/yumのコマンドがsudo実行可能になります
まとめ
sudoers
ファイルは、システム管理者がユーザーやグループに対して特権コマンドの実行を制御するための設定ファイルです。この設定ファイルを編集して適切なコマンド実行権限をユーザーに付与しましょう!
以上です!
ここまで読んでいただきありがとうございました!
コメント