ユーザーの実行権限を柔軟に割り当てるsudoのリスクとメリット:Linux Hacks(2/3 ページ)
rootパスワードを公開することなくアクセス範囲を最小限化した上で必要な権限を一般ユーザーに与えられるsudo。ここではsudoについてそのリスクとメリット、そして柔軟なシステム運用に役立てるための幾つかのTIPSを紹介しよう。
次に設定するのは実行権限の指定セクションで、この部分は“who where = (whoelse) what”という構文により「whoという者(ユーザー、グループ、ユーザーエイリアス)はwhereというホスト上にてwhatというコマンドをwhoelseというユーザーの有す権限で実行できる」という指定を行っていけばいい(この説明だけでは分かりにくいかもしれないので設定ファイルのサンプルを用意した)。ここでは、例えばsudoをパスワードなしで実行可能にするNOPASSWDなど、幾つかのオプション指定をすることも可能だが、詳細はマニュアルを参照して頂きたい。
なお本稿で掲載したサンプルは、設定ファイルおよび各種オプションがどのような形式で記述されるかの概要を示すためのもので、使用可能なすべての設定を網羅したものとはなっていない(実際にどのような設定が可能であるかは「man sudoers」にて確認のこと)。
#
# ディズニーのキャラクタ名を拝借したサンプル/etc/sudoersファイル
#
# ユーザーエイリアス
# 1行目では特定の3ユーザーを一括して参照するエイリアスを設定
# 2行目ではdonaldを除いたducksユーザーグループのエイリアスを設定
# 3行目では単一ユーザーのみのエイリアスを設定しているが、これは将来の便を図っての措置
#
User_Alias NEPHEWS = huey, dewey, louie
User_Alias ALL_DUCKS_BUT_DONALD = %ducks, !donald
User_Alias MICKEY = mickey_mouse
# コマンドエイリアス
Cmnd_Alias HALT_OR_REBOOT = /sbin/halt
Cmnd_Alias KILL = /usr/bin/killall
Cmnd_Alias SHUTDOWN = /sbin/shutdown
Cmnd_Alias SU = /bin/su
# 権利設定:誰が何を実行できるか
# 標準の設定ルール:rootおよびwheelグループユーザーにはフルアクセスを許可
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL
# ここではmickeyがシステム管理者であるとして、全権限をパスワード不要で与える
MICKEY ALL = NOPASSWD: ALL
# NEPHEWSにはコンピュータの停止系コマンドを許可
NEPHEWS HALT_OR_REBOOT, SHUTDOWN
設定ファイルの末尾には追加設定の指定行を記述しておくことも可能で、具体的には次のような指定が行える。
- 間違ったパスワード入力やsudoの不正使用が試みられた場合に電子メールで通知するか
- ログイン失敗時の強制終了を猶予する上限回数
- sudoの使用に伴うリスクの説明をユーザーに提示するか
- sudoを介して使用された全コマンドを記録させる専用のログファイル
エディタの終了時にはvisudoによって設定内容のエラーがチェックされるため、問題点を指摘された場合は該当カ所を設定し直せばいいが、あるいはすべての変更を取り消して編集前の状態に設定ファイルを復帰させることもできる。なお、エラー部分を残したままファイルを保存しておくという第3の選択肢も取れなくはないが、その場合は問題カ所が訂正されるまで全ユーザーがsudoコマンドを使用不可能な状態に置かれるので、可能な限り避けるべきである。
Copyright © 2010 OSDN Corporation, All Rights Reserved.