初期設定 : Sudo の設定2023/12/15 |
Sudo を利用することにより、root 権限の委譲や権限の分離、root パスワードの使い回しを防止できる等々、セキュリティを高めることができます。
|
|
[1] | Sudo をインストールします。 |
root@dlp:~ # pkg install -y sudo |
[2] | root 権限を特定のユーザーに全て委譲する。 |
root@dlp:~ #
visudo # 最終行に追記 : [freebsd] はroot権限を全て利用できる # 書式 ⇒ 委譲先 ホスト=(委譲元) コマンド freebsd ALL=(ALL:ALL) ALL # ユーザー [freebsd] で動作確認 freebsd@dlp:~ $ ls -l /root
total 0
ls: /root: Permission denied
# 拒否される
freebsd@dlp:~ $ sudo ls -l /root Password: # freebsd のパスワード total 64 -rw-r--r-- 2 root wheel 1011 Nov 10 17:11 .cshrc -rw-r--r-- 1 root wheel 66 Nov 10 17:49 .k5login -rw-r--r-- 1 root wheel 316 Nov 10 17:11 .login -rw-r--r-- 2 root wheel 495 Nov 10 17:11 .profile -rw------- 1 root wheel 932 Dec 15 10:46 .sh_history -rw-r--r-- 1 root wheel 1174 Nov 10 17:11 .shrc -rw------- 1 root wheel 3233 Dec 15 10:45 .viminfo -rw------- 1 root wheel 564 Dec 15 10:41 mbox # 正常に実行できた |
[3] | [1] の設定に加えて、しかし、特定のコマンドは許可しない。 |
root@dlp:~ #
visudo # システム停止系のコマンドエイリアス追記 # Cmnd alias specification Cmnd_Alias SHUTDOWN = /sbin/halt, /sbin/shutdown, \ /sbin/poweroff, /sbin/reboot, /sbin/init # [1] の設定部分に追記 (エイリアス [SHUTDOWN] は許可しない) freebsd ALL=(ALL:ALL) ALL, !SHUTDOWN # ユーザー [freebsd] で動作確認 freebsd@dlp:~ $ sudo /usr/sbin/reboot Password: Sorry, user freebsd is not allowed to execute '/sbin/reboot' as root on dlp.srv.world. # 拒否された
|
[4] | root 権限が必要な特定のコマンドを特定のグループに属するユーザーに委譲する。 |
root@dlp:~ #
visudo # ユーザー管理系のコマンドエイリアス追記 # Cmnd alias specification
Cmnd_Alias USERMGR = /usr/sbin/adduser, /usr/sbin/pw, /usr/sbin/rmuser, \
/usr/bin/passwd
# 最終行 : グループ [usermgr] に属するユーザーに [USERMGR] で定義したコマンドの許可を追記
%usermgr ALL=(ALL:ALL) USERMGR
root@dlp:~ #
pw groupadd usermgr root@dlp:~ # pw groupmod usermgr -m freebsd
# ユーザー [freebsd] で動作確認 freebsd@dlp:~ $ sudo /usr/sbin/pw useradd testuser freebsd@dlp:~ $ freebsd@dlp:~ $ sudo /usr/bin/passwd testuser Changing local password for testuser New Password: Retype New Password: # 正常に実行完了した
|
[5] | root 権限が必要な特定のコマンドを特定のユーザーに委譲する。 |
root@dlp:~ #
visudo # 最終行 : それぞれのユーザーに特定のコマンドの許可設定追記 openbsd ALL=(ALL:ALL) /usr/local/sbin/visudo dragonfly ALL=(ALL:ALL) /usr/sbin/adduser, /usr/sbin/pw, /usr/sbin/rmuser, \ /usr/bin/passwd linux ALL=(ALL:ALL) /usr/bin/vi # ユーザー [openbsd] で動作確認 openbsd@dlp:~ $ sudo /usr/local/sbin/visudo
# 正常に保存編集が可能 ## sudoers file. ## # ユーザー [dragonfly] で動作確認 dragonfly@dlp:~ $ sudo /usr/sbin/pw userdel testuser -r
dragonfly@dlp:~ $
# 正常に完了
# ユーザー [linux] で動作確認
linux@dlp:~ $
sudo /usr/bin/vi /root/.profile
# 正常に保存編集が可能 # HOME=/root export HOME ..... ..... |
[6] | Sudo のログは、デフォルトでは [/var/log/auth.log] に記録されますが、Sudo のログのみを別ファイルに記録したい場合は以下のように設定します。 |
root@dlp:~ #
visudo # 最終行に追記 Defaults syslog=local1
root@localhost:~#
vi /etc/syslog.conf # 10, 11行目 : 追記 local1.* /var/log/sudo.log auth.info;authpriv.info;local1.none /var/log/auth.logroot@dlp:~ # touch /var/log/sudo.log root@dlp:~ # chmod 600 /var/log/sudo.log root@dlp:~ # service syslogd reload
|
Sponsored Link |