• ベストアンサー

Linuxサーバのsudoers

一般ユーザに権限を与える方法として以下のようなものがある思います。 user ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf ですが、このようにすると問題があると聞いたのですが、具体的にはどのような問題ですか?また、楽に解決できる方法があったら教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

こんにちわ。 vimは外部コマンドを実行する機能が備わっているエディタなので、 上記sudoersのようにvimをroot権限で起動できてしまうと、 httpd.conf以外のファイル編集/削除やコマンド実行など自由できてしまうという問題があります。 参考URLにはその問題や解決方法などもまとめられておりますので、 ご参考頂ければと思いますが、sudo -e か sudoedit で編集できるようにすれば良いと思います。 >user ALL=(ALL) /usr/bin/sudoedit /etc/httpd/confs/httpd.conf sudoeditを使うとエディタが起動しますが、 そのエディタの実行ユーザはrootではなくsudoeditを実行したユーザの権限で実行されます。

参考URL:
http://kaworu.jpn.org/kaworu/2008-05-04-2.php
feaite
質問者

お礼

ありがとうございます! 教えていただいたページの中で、 sudo /bin/cat /path/to/secret | less これだけ理解ができなかったのですが、解説していただけませんか?パイプは知っています。普通にlessを許可するのとcatを挟むのとで何が違うのか良く分かりませんでした。

その他の回答 (1)

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.2

こんにちわ。 >sudo /bin/cat /path/to/secret | less 上記コマンドの場合、 - catはroot権限 - lessはユーザ権限 で実行されます。 lessも外部コマンドを実行できますので、 lessをsudoできてしまうとviと同様の問題が起きてしまいます。 その対応としてcatだけsudoできるようにしています。

feaite
質問者

お礼

catは開くためだけに使って、そのファイルをlessで読み込むということですね。 ありがとうございます。

関連するQ&A