SLES 11 SP4
Sponsored Link

Sudo の設定2015/11/25

 
root 権限の委譲や権限の分離、root パスワードの使いまわし防止のため Sudo を設定しておきます。
なお、Sudo は最小構成インストールでもデフォルトでインストールされるので、新たにインストールする必要はありません。
[1] SUSE Linux の場合、デフォルトの設定が sudo 利用時に root パスワードの入力を求められるようになっているため、実行者自身のパスワードで認証できるよう設定を変更します。
dlp:~ #
# 35,36行目:コメント化

#
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

suse's password:    
# 自身のパスワード
...
...
uucp:*:16357::::::
wwwrun:*:16357::::::    
# 実行できた
[3] [1]の設定に加えて、しかし、特定のコマンドは許可しない。
dlp:~ #
# 30行目あたりに追記: システム停止系のコマンドエイリアス追記

Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \
/sbin/poweroff, /sbin/reboot, /sbin/init
# [1]の設定部分に追記 ( エイリアス「SHUTDOWN」は許可しない )

suse ALL=(ALL) ALL,
!SHUTDOWN
# ユーザー「suse」で動作確認

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

Password:
Sorry, user suse is not allowed to execute '/sbin/shutdown -r now' as root on dlp.  
# 拒否された
[4] root 権限が必要な特定のコマンドを特定のグループに属するユーザーに委譲する。
dlp:~ #
# 30行目あたりに追記: ユーザー管理系のコマンドエイリアス追記

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 -G usermgr suse

# ユーザー「suse」で動作確認

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

suse@dlp:~>    
# 正常に完了

suse@dlp:~>
sudo /usr/bin/passwd testuser

Changing password for user testuser.
New UNIX password:    
# testuserのパスワード設定

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

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

# ユーザー「suse」で動作確認

suse@dlp:~>
sudo /sbin/visudo
# 正常に開き保存編集もできる

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
# ユーザー「cent」で動作確認

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

cent@dlp:~>    
# 正常に完了
# ユーザー「ubuntu」で動作確認

ubuntu@dlp:~>
sudo /bin/vi /boot/grub2/grub.cfg
# 正常に開き保存編集もできる

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
[6] デフォルトでは /var/log/secure に sudo の実行ログが残りますが、sudo のログを別ファイルに記録したい場合は以下のように設定します。
dlp:~ #
# 最終行に追記

Defaults syslog=local7
dlp:~ #
vi /etc/syslog-ng/syslog-ng.conf
# 84行目:「local7」を削除

filter f_local     { facility(local0, local1, local2, local3,
        local4, local5, local6); };
# 87行目:追記

filter f_sudo     { facility(local7); };
# 99行目:追記

filter f_messages { not facility(news, mail) and not filter(f_iptables)
and not filter(f_sudo)
; };
# 219行目:追記

destination sudolog { file("/var/log/sudo.log"); };
log { source(src); filter(f_sudo); destination(sudolog); };
dlp:~ #
/etc/init.d/syslog restart

Shutting down syslog services
Starting syslog services
関連コンテンツ