- ベストアンサー
Linuxサーバのsudoers
一般ユーザに権限を与える方法として以下のようなものがある思います。 user ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf ですが、このようにすると問題があると聞いたのですが、具体的にはどのような問題ですか?また、楽に解決できる方法があったら教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 vimは外部コマンドを実行する機能が備わっているエディタなので、 上記sudoersのようにvimをroot権限で起動できてしまうと、 httpd.conf以外のファイル編集/削除やコマンド実行など自由できてしまうという問題があります。 参考URLにはその問題や解決方法などもまとめられておりますので、 ご参考頂ければと思いますが、sudo -e か sudoedit で編集できるようにすれば良いと思います。 >user ALL=(ALL) /usr/bin/sudoedit /etc/httpd/confs/httpd.conf sudoeditを使うとエディタが起動しますが、 そのエディタの実行ユーザはrootではなくsudoeditを実行したユーザの権限で実行されます。
その他の回答 (1)
- heburusu
- ベストアンサー率85% (140/164)
回答No.2
こんにちわ。 >sudo /bin/cat /path/to/secret | less 上記コマンドの場合、 - catはroot権限 - lessはユーザ権限 で実行されます。 lessも外部コマンドを実行できますので、 lessをsudoできてしまうとviと同様の問題が起きてしまいます。 その対応としてcatだけsudoできるようにしています。
質問者
お礼
catは開くためだけに使って、そのファイルをlessで読み込むということですね。 ありがとうございます。
お礼
ありがとうございます! 教えていただいたページの中で、 sudo /bin/cat /path/to/secret | less これだけ理解ができなかったのですが、解説していただけませんか?パイプは知っています。普通にlessを許可するのとcatを挟むのとで何が違うのか良く分かりませんでした。