Solaris 10の最小特権機能の利用方法UNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 10に実装されている最小特権機能について解説します。

» 2008年10月22日 01時50分 公開
[ITmedia]

Solaris 10の最小特権機能(Least Privilege)とはどのような機能ですか? また、その利用方法を教えてもらえますか?


Solaris 10 の最小特権機能では、一般ユーザーに必要最低限の特権を与えることで、root権限でのみ実行可能なコマンドを利用できるようにします。Solaris 9のRBACやsudoコマンドを使用した場合よりも、与える特権が少なく済むため、セキュリティリスクを低く抑えられます。

 一般ユーザーに与えることができる特権は、cpc_cpu、dtrance_kernel、dtrance_proc、file_chown、ipc_owner、net_rawaccess、proc_chroot、sys_acctなど計48種類あります。ここでは、一般ユーザーにNFSマウントの実行権限を与える場合を例として、この機能の設定方法を説明します。

 まずrootユーザーでログインし、一般ユーザーtestを作成します。


# useradd -d /export/home/test -m -s /bin/bash test

 作成したユーザーtestでログインし、ホームディレクトリにNFSマウント先のディレクトリを作成します。


# su - test
% cd ~
% mkdir mnt_test

 現在の状態でNFSマウントできないことを確認します(NFSサーバのIPアドレスを10.10.10.10とする)。その後、ユーザーtestからログアウトしてrootユーザーに戻ります。


% /usr/sbin/mount 10.10.10.10:/test /export/home/test/mnt_test
nfs mount: 特権が不十分です
% exit

 ユーザーtestにNFSマウントの実行を許可する権限を与えます。NFSマウントの実行に必要な権限はsys_mountとnet_privaddrですので、この2つをユーザーtestに与えます。


# usermod -K defaultpriv=basic,sys_mount,net_privaddr test

 設定変更が反映されたかどうか、設定ファイル/etc/user_attrを確認します(リスト1)。その後、再度ユーザーtestでログインしてNFSマウントを実行し、dfコマンドで確認します(実行例1)。

# /etc/user_attr

#

# user attributes. see user_attr(4)

#

#pragma ident "@(#)user_attr 1.1 03/07/09 SMI"

#

adm::::profiles=Log Management

lp::::profiles=Printer Management

root::::auths=solaris.*,solaris.grant;profiles=Web Console Management,All;lock_after_retries=no

test::::type=normal;defaultpriv=basic,sys_mount,net_privaddr


リスト1 設定ファイル/etc/user_attr。このファイルの内容を直接変更しても構わない

$ /usr/sbin/mount 10.10.10.10:/test /export/home/test/mnt_test
$ df -k
ファイルシステム      kbytes 使用済み 使用可能 容量      マウント先
/dev/dsk/c0t0d0s0    8242901 6307052 1853420    78%    /
                      :
                      :
10.10.10.10:/test   19219513 13936562 5090756    74%    /export/home/test/mnt_test

実行例1 ユーザーtestでログイン後NFSマウントを実行し、dfコマンドで確認

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ