ユーザーの実行権限を柔軟に割り当てるsudoのリスクとメリットLinux Hacks(2/3 ページ)

» 2008年02月19日 00時00分 公開
[Federico Kereki,Open Tech Press]
SourceForge.JP Magazine

 次に設定するのは実行権限の指定セクションで、この部分は“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.

注目のテーマ