特定のユーザにsudoコマンドを許可する方法
設定ファイルsudoersを編集することで,ユーザごとにsudoコマンドを許可を与えることができる.
sudoersとは
ユーザにどのようなsudo権限があるかが記載されたもの.
特定のユーザに管理者権限は与えたくないが,管理者権限を必要とする特定のコマンドのみを実行することを許可するなどができる.
sudoersの設定,編集方法
実ファイルは/etc/sudoersに存在するが,ファイルを直接編集するのではなく必ずsudoersファイル編集用のコマンド”visudo”で編集する.
visudoを使用することで,構文エラーを警告してくれる.直接ファイルを編集して,構文ミスを犯した場合,途方もなく苦労する.
基本構文
ユーザに指定する場合
<username> ALL=<who> <PASSWD:|NOPASSWD:> <command1>,<command2>, ...
<username>:ユーザ名
<who>:どのようなユーザとしてコマンドを実行できるか
<PASSWD:|NOPASSWD:>: パスワードを要求するかしないか
<command1>,<command2>,…:実行許可するコマンド.カンマ区切りで複数指定できる.絶対パスを書くことをお勧めする.相対パスの場合は,sudoersからの相対パスになる.
ALL=<who>の”ALL”の部分はLDAPなどを使用している場合,変更する場合があるが,通常の場合,”ALL=”で十分である.
グループを指定する場合
#<groupname> ALL=<who> <PASSWD:|NOPASSWD:> <command1>,<command2>, ...
コマンドに関しては基本的にユーザに指定する場合と同じである.
注意点としてはグループ名を指定する際の’#’はコメントアウトではなく,グループであることを示す.
使用例
エディタを指定し,”visudo”を起動.(この場合,エディタはEmacs)
# export EDITOR=emacs
# visudo
hoge ALL=(root) NOPASSWD: /bin/ls
#foo ALL=(root) PASSWD: /sbin/swapon /sbin/swapoff
ファイルの説明
1行目:ユーザ”hoge”は”コマンド”/bin/ls”をrootとして実行することができる(パスワード要求なし).
2行目:グループ”foo”に所属するユーザは,コマンド”/sbin/swapon”および”/sbin/swapoff”をrootとして,実行することができる(パスワードが要求される).
コメント