sudoers 設定
08 May 2012
/etc/sudoers の書き方を調べてみた。
一部コマンドを管理ユーザー以外にも開放したい場合があったので。
たとえば、 Ramdisk をいじるときに mount と umount が必要だったり。
基本的な書式は
ユーザー名 ホスト名=(誰として) コマンド名
という風になっている。
例えば、
hoge fugahost=(piyo) /bin/cp
というのは
ユーザー hoge が、ホスト名 fugahost 上で、ユーザー piyo として cp コマンドを実行することを許す、
という意味になる。
ホスト名の部分は具体的にホスト名を指定する使い道はあまりなさそうなので ALL にしておけばいいでしょう。
(誰として)の部分も、普通は root になりたいはず。
上記の例のように hoge さんが
sudo -u piyo cp file1 file2
とできてもうれしくないし。。
なので、 (root) と具体的に指定してもいいけど、ここも (ALL) にしとけばいいでしょう。
ユーザー名 の部分はグループ指定もできるようだ。グループ指定は、頭に % をつける。
複数指定したいときはコンマをつかって並べる。
だから、実質的にやりたいことは
%hogegroup ALL=(ALL) /bin/mount, /bin/umount
みたいな書き方になる。
hogegroup に所属するユーザーが mount と umount を実行できる。
さらに man sudoers を読んでいるとエイリアス指定を使って書くこともできるみたい。
以下のような感じ。
# User alias specification
User_Alias HOGEPIYO_GRP = hoge, piyo
# Cmnd alias specification
Cmnd_Alias ALLOWED_CMD = /bin/mount, /bin/umount
HOGEPIYO_GRP ALL=(ALL) ALLOWED_CMD
ついでに NOPASSWD: タグをつけるとパスワード入力を省ける。
HOGEPIYO_GRP ALL=(ALL) NOPASSWD: ALLOWED_CMD
ちなみに /etc/sudoers の編集は直接エディタでやらずに visudo コマンドで。
文法チェックをしてくれます。
blog comments powered by Disqus