Security Tips
 

SolarisのRBAC機能でsudoを置き換える

たかはしもとのぶ
2004/7/21

 ユーザーに一部のコマンドだけをroot権限(あるいはそのほかの特定のアカウントの権限)で実行させたいという場合に用いられる便利なフリーソフトにsudoがある。しかし、Solaris 8以降ではRBAC(Role Based Access Control)に含まれる機能で、ほぼ同様のことが実現できる。

 Solaris 9の場合について、具体的な方法について説明する。なおRBACの全体像については、「Solarisのシステム管理(セキュリティサービス)」中の

17. 役割によるアクセス制御(概要)
18. 役割によるアクセス制御(手順)
19. 役割によるアクセス制御(参照)
を参照してほしい。

  以下、説明のため、/usr/bin/idをmonyoというアカウントに限り、uid=0/gid=0で実行する場合を例に取り、具体的な設定方法を示す。

(1)/etc/security/prof_attrに以下の行を追加

run-id:::Rights for running id:help=dummy.html

 「run-id」は権利プロファイル名で、任意の文字列である。「Rights for running id」は任意の内容のコメントである。

(2)/etc/security/exec_attrに以下のようなエントリを追加

run-id:suser:cmd:::/usr/bin/id:uid=0;gid=0

 「/usr/bin/id」は実行ファイルのパスである。

(3)/etc/user_attrで以下のように設定

monyo::::type=normal;profiles=run-id

 設定を行った後、以下のようにして実行する。

monyo$ pfsh -c /usr/bin/id
uid=0(root) gid=0(root)

 pfshにの代わりにpfkshやpfcshの利用も可能だ。

 なお単にidコマンドを実行すれば、次のようになるはずだ。

monyo$ /usr/bin/id
uid=101(monyo) gid=1(other)

 上記の例では、設定ファイルを直接修正する方法を紹介したが、作業ミスを削減する意味では、smc(1)からのGUIによる設定や、smprofile(1M)やsmrole(1M)といったコマンドによる設定が推奨される。また、いくつかのアカウントに対して、いくつかのコマンドの実行権限を一括して変更したいといった場合は、ロール、もしくは権利プロファイルなどの活用も考えられる。

Security Tips Index



Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間