とあるエンジニアの備忘log
2012年5月8日火曜日
sudoers 設定
`/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` コマンドで。 文法チェックをしてくれます。
新しい投稿
前の投稿
ホーム
登録:
投稿 (Atom)