Fedora 34
Sponsored Link

初期設定 : Sudo の設定2021/04/28

 
root 権限の委譲や権限の分離、root パスワードの使いまわし防止のため Sudo を設定しておきます。
なお、Sudo は最小構成インストールでもデフォルト構成に含まれているため、新たにインストールする必要はありません。
[1] root 権限を特定のユーザーに全て委譲する。
[root@dlp ~]#
# 最終行に追記 : [fedora] は root権限を全て利用できる

fedora  ALL=(ALL)       ALL
# 書式 ⇒ 委譲先 ホスト=(委譲元) コマンド
# ユーザー [fedora] で動作確認

[fedora@dlp ~]$
/usr/bin/cat /etc/shadow

/usr/bin/cat: /etc/shadow: Permission denied  
# 正常に拒否される
[fedora@dlp ~]$
sudo /usr/bin/cat /etc/shadow

Password:    
# 自身のパスワード
.....
.....
chrony:!!:18163::::::
tcpdump:!!:18163::::::  
# 実行できた
[2] [1] の設定に加えて、しかし、特定のコマンドは許可しない。
[root@dlp ~]#
# 49行目あたりに追記

# 例として システム停止系のコマンドエイリアスを設定

Cmnd_Alias SHUTDOWN = /usr/sbin/halt, /usr/sbin/shutdown, \
/usr/sbin/poweroff, /usr/sbin/reboot, /usr/sbin/init, /usr/bin/systemctl

# [1] の設定部分に追記 ( エイリアス [SHUTDOWN] は許可しない )

fedora  ALL=(ALL)       ALL, !SHUTDOWN

# ユーザー [fedora] で動作確認

[fedora@dlp ~]$
sudo /usr/sbin/reboot

[sudo] password for fedora:
Sorry, user fedora is not allowed to execute '/usr/sbin/reboot' as root on dlp.srv.world.  
# 拒否された
[3] root 権限が必要な特定のコマンドを特定のグループに属するユーザーに委譲する。
[root@dlp ~]#
# 51行目あたりに追記

# 例として ユーザー管理系のコマンドエイリアスを設定

Cmnd_Alias USERMGR = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, \
/usr/bin/passwd

# 最終行 : グループ [usermgr] に属するユーザーに [USERMGR] で定義したコマンドの許可を追記

%usermgr ALL=(ALL) USERMGR
[root@dlp ~]#
groupadd usermgr

[root@dlp ~]#
usermod -aG usermgr redhat

# ユーザー [redhat] で動作確認

[redhat@dlp ~]$
sudo /usr/sbin/useradd testuser

[redhat@dlp ~]$
sudo /usr/bin/passwd testuser

Changing password for user testuser.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.  
# 実行できた
[4] root 権限が必要な特定のコマンドを特定のユーザーに委譲する。
[root@dlp ~]#
# 最終行 : 設定したい各ユーザーに特定のコマンドの許可を追記

fedora  ALL=(ALL)       /usr/sbin/visudo
ubuntu  ALL=(ALL)       /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
debian  ALL=(ALL)       /usr/bin/vi

# 例として ユーザー [fedora] で動作確認

[fedora@dlp ~]$
sudo /usr/sbin/visudo
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##  
# 実行できた
[5] Sudo のログは、デフォルトでは ログ管理サービス Journal ([journalctl] コマンドでログ閲覧) や Rsyslog ([/var/log/secure] ファイルでログ閲覧) 経由で保管されますが、Sudo のログのみを別ファイルに記録したい場合は以下のように設定します。
[root@dlp ~]#
# 最終行に追記

# 例として、ファシリティ [local1] にログを出力する

Defaults syslog=local1
[root@dlp ~]#
vi /etc/rsyslog.conf
# 46,47行目 : 追記

*.info;mail.none;authpriv.none;cron.none;local1.none   /var/log/messages
local1.*                /var/log/sudo.log

# The authpriv file has restricted access.
authpriv.*              /var/log/secure

[root@dlp ~]#
systemctl restart rsyslog

関連コンテンツ