Help us understand the problem. What is going on with this article?

visudoでsudo権限の設定をする際のメモ(sudoersの'ers'って何の略なんですかね?)

More than 5 years have passed since last update.

sudoersファイル

Linuxでは

  • /etc/sudoers

FreeBSDでは

  • /usr/local/etc/sudoers

に存在する設定ファイル。
この設定ファイルを変更して、sudoできるユーザや特定のコマンドを設定できる。

sudoersに文法ミスなどで誤った設定を記述した場合、sudoできなくなる可能性がある。
このファイルは直接編集すると危険なのでvisudoコマンドを通して編集する。

$ visudo

visudoではviが起動されてsudoersを編集するが、
コマンドの終了時にファイルの文法をチェックして問題があれば警告を出して
再度の変更を促し、誤った変更を破棄する。

sudoersの書式

基本的に下記のような形で設定する。

# who     where     = (as_whom)      what 
user1 ALL = (root) /sbin/service httpd start

この記述で
ユーザwhoが、ホストwhereで、権限as_whomで、コマンドwhatを実行できる。

who

ユーザ名またはグループ名を記述する。
カンマを使ってユーザ名のリストにすることもできるが、1行に1つのユーザを追記する人が多い気がする。
グループ名を指定する場合は、グループ名の前に'%'をつける。

%wheel ALL = (ALL) ALL

where

ホスト名またはIP アドレス、またはネットワークアドレス、またはネットグループ名をコンマ区切りにしたリスト。
sudoersを複数のマシンで簡単に共有して使いたい場合は、'ALL'を記述する。

user01 work1,work2 = (ALL) ALL
%admin ALL = (root) ALL

as_whom

誰の権限で実行が可能かを記述する。
ALLで全員の権限での実行を可能にする。
指定がない場合はデフォルトで'root'が指定されたことになる。

例えば

user01 ALL = (postgres) psql

と記述した場合、user01はpostgresの権限でpsqlコマンドを実行できる。

user01$ sudo -u postgres psql

what

絶対パスで指定したコマンドを、カンマ区切りのリスト形式で記述する。
引数を指定した場合、指定された引数以外の引数でコマンドを実行することは出来なくなり、
引数を指定しない場合、任意の引数で実行できる。

## /sbin/service/httpd stop は実行できない
user01 ALL = (ALL) /sbin/service httpd start
## /sbin/service/httpd start
## /sbin/service/httpd stop
## 両方とも実行できる
user01 ALL = (ALL) /sbin/service httpd

参考資料

より詳細を調べたい場合は適宜man sudoersで。

Man page of SUDOERS
http://linuxjm.sourceforge.jp/html/sudo/man5/sudoers.5.html

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away