Solaris 10 の設定: sudo で特権委譲

Home » メモ帳 » Unix » Solaris 10 の設定: sudo で特権委譲
Unix コメントはまだありません

特権が必要なたびに su で root になってたんじゃ大変だよ。また、ユーザーみんなに root のパスワードを教えるってのも、このご時勢ではナンセンスだ。必要なコマンドだけ、sudo でユーザーに権限委譲する。sudo であれば、ユーザーのパスワードで再認証するので、root のパスワードを教える必要はない。

RBAC にするか sudo にするか悩みまくったんだけど、結局 sudo にすることにした。RBAC でしばらく運用してみたんだが、Linux の癖で sudo を叩いてしまう。運用コストを抑えるためには、互換性重視が必要と結論。RBAC は、Linux のほうでも標準化されたらね。

sudo パッケージのインストール

$ wget --passive-ftp \
ftp://ftp.sunfreeware.com/pub/freeware/intel/10/sudo-1.6.8p9-sol10-intel-local.gz
$ gunzip sudo-1.6.8p9-sol10-intel-local.gz
$ su root -c "/usr/sbin/pkgadd -d sudo-1.6.8p9-sol10-intel-local"

The following packages are available:
1 SMCsudo sudo
(intel) 1.6.8p9

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: [ENTER]
:(skip)
The following files are being installed with setuid and/or setgid
permissions:
/usr/local/bin/sudoedit <setuid root>

Do you want to install these as setuid/setgid files [y,n,?,q] y
:(skip)
Installation of <SMCsudo> was successful.

sudo の設定 (/usr/local/etc/sudors)

設定ファイル sudors は、vi で編集すると痛い目をみるよ。構文間違いがあると sudo が使えなくなるので、復旧できなくなる。構文チェックをしてくれる visudo を使って編集すること。

$ su root -c /usr/local/sbin/visudo

--- /usr/local/etc/sudoers.old
+++ /usr/local/etc/sudoers
@@ -27,3 +27,7 @@
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
+
+Cmnd_Alias SU=/bin/su
+Defaults logfile=/var/log/sudo.log
+natsu ALL=(ALL) ALL,!SU

動作テスト

まず普通に /var/log/authlog を less できるかやってみる。

$ less /var/log/authlog

/var/log/authlog: Permission denied

もちろん怒られる。

次に sudo をコマンドの頭につけてやってみる。

$ sudo less /var/log/authlog

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

Password: [password: rootのでなく自分のパスワードを入力]
:(読むことができる,もちろんコマンドによっては書き込みも可)