openSUSE Leap 16

初期設定 : Sudo の設定2025/10/10

 

root 権限の委譲や権限の分離、root パスワードの使いまわし防止のため Sudo を設定しておきます。

なお、Sudo は最小構成インストールでもデフォルトでインストールされるので、新たにインストールする必要はありません。

[1] SUSE Linux デフォルトでは、全ユーザーが [sudo] 利用時に root パスワードの入力をすれば、コマンドの実行が可能な設定となっています。
もしこの設定が不要で、明示的に設定したユーザーのみが認証試行できるように変更するには、以下のように設定します。
dlp:~ #
# 111,112行目 : コメント化

#Defaults targetpw
#ALL   ALL=(ALL) ALL
[2] root 権限を特定のユーザーに全て委譲する。
dlp:~ #
# 最終行に追記 : [suse] は root 権限を全て利用可
# 書式 ⇒ 委譲先 ホスト=(委譲元) コマンド
suse ALL=(ALL) ALL

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

suse@dlp:~>
/bin/cat /etc/shadow

/bin/cat: /etc/shadow: Permission denied    
# 正常に拒否される
suse@dlp:~>
sudo /bin/cat /etc/shadow

[sudo] password for suse:   # 自身のパスワード
tftp:!:20370::::::
nobody:!:20370::::::
man:!:20370::::::
lp:!:20370::::::
messagebus:!:20370::::::
dnsmasq:!:20370::::::
.....
.....
[3] [1] の設定に加えて、しかし、特定のコマンドは許可しない。
dlp:~ #
# 40行目 : システム停止系のコマンドエイリアス追記
Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \
/sbin/poweroff, /sbin/reboot, /sbin/init, /usr/bin/systemctl

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

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

suse@dlp:~>
sudo /sbin/shutdown -r now

[sudo] password for suse:
Sorry, user suse is not allowed to execute '/sbin/shutdown -r now' as root on dlp.srv.world.
# 拒否された
[4] root 権限が必要な特定のコマンドを特定のグループに属するユーザーに委譲する。
dlp:~ #
# 40行目 : ユーザー管理系のコマンドエイリアス追記
Cmnd_Alias USERMGR = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, \
/usr/bin/passwd
# 最終行 : グループ [usermgr] に属するユーザーに [USERMGR] で定義したコマンド許可設定追記 %usermgr ALL=(ALL) USERMGR
dlp:~ #
groupadd usermgr

dlp:~ #
usermod -aG usermgr leap

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

leap@dlp:~>
sudo /usr/sbin/useradd testuser

[sudo] password for leap:
leap@dlp:~>
sudo /usr/bin/passwd testuser

New password:
Retype new password:
passwd: password updated successfully
[5] root 権限が必要な特定のコマンドを特定のユーザーに委譲する。
dlp:~ #
# 最終行 : それぞれのユーザーに特定のコマンドの許可設定追記

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

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

sles@dlp:~>
sudo /sbin/visudo
[sudo] password for sles:

## In the default (unconfigured) configuration, sudo asks for the root password.
## This allows use of an ordinary user account for administration of a freshly
## installed system.
# 正常に開き保存編集もできる

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

leap@dlp:~>
sudo /sbin/userdel -r testuser

[sudo] password for leap
# 正常に完了

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

debian@dlp:~>
sudo /bin/vi /etc/default/grub
[sudo] password for debian:

# Uncomment to set your own custom distributor. If you leave it unset or empty, the default
# policy is to determine the value from /etc/os-release
# 正常に開き保存編集もできる
[6] デフォルトでは [/var/log/messages] に [sudo] の実行ログが記録されますが、[sudo] のログを別ファイルに記録したい場合は以下のように設定します。
dlp:~ #
# 最終行に追記

Defaults syslog=local1
dlp:~ #
vi /etc/rsyslog.conf
# 133行目 : 追記
*.*;mail.none;news.none;local1.none     -/var/log/messages

# 145行目 : [local1] を削除
local0.*                      -/var/log/localmessages

# 最終行に追記
local1.*                       -/var/log/sudo.log

dlp:~ #
systemctl restart rsyslog

関連コンテンツ