質問: sudoersの設定 user all=(all) /usr/bin/vim /etc/httpd/confs/httpd.confの意味を詳しく教えて下さい。 調べたのですが、特にallと(all)の違いがよく理解できませんでした。
回答: user all=(all) /usr/bin/vim /etc/httpd/confs/httpd.confの意味は以下のようになる。 「userという名前のユーザーは全てのホストにおいて/etc/httpd/confs/httpd.confという文字列を引数に/usr/bin/vimコマンドを実行する場合に同システム内の全てのユーザー権限に成り代わる事ができる。」 all=(all)は、前が「全てのホスト」、後ろが「全てのユーザーへ」という事を表している。 私も偉そうに解説しているがホストの方は全く分かっていないし使った事もない。 hogeとfugaという2つの一般ユーザーが居るシステムにおいて以下のような制御わけになるだろう。 例1 hoge all=(all) /usr/bin/vim /home/fuga/test.txt ユーザーhogeは $ sudo /usr/bin/vim /home/fuga/test.txt とするとroot権限で編集を行う事ができる。 $ sudo -u fuga /usr/bin/vim /home/fuga/test.txt とするとfuga権限で編集を行う事ができる。 例2 hoge all=(fuga) /usr/bin/vim /home/fuga/test.txt ユーザーhogeは例1における後者は行う事ができるが前者は行えない。