先日からvagrantにおおいに悪い意味でハマっています。まず最初に課題にとして上がったのがwarning。
こんなwarningがvagrantコマンドを叩く度に毎回出ます。
$ vagrant box list /opt/vagrant/bin/../embedded/gems/gems/vagrant-1.7.2/lib/vagrant/pre-rubygems.rb:31: warning: Insecure world writable dir /usr/local/sbin in PATH, mode 040777 /opt/vagrant/embedded/gems/gems/bundler-1.7.11/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /usr/local/sbin in PATH, mode 040777 chef/centos-6.5-i386 (virtualbox, 1.0.0) precise64 (virtualbox, 0) ubuntu/trusty32 (virtualbox, 14.04) ubuntu/trusty64 (virtualbox, 14.04)
warningなので無視していてもいいといえばいいのですが、凄く気になるので調べました。
普通に訳すと「安全でないところが書き込み可能になっているよ」
エラーメッセージの内容を確認すると、/usr/local/sbin配下が書き込み可能になってるよとのこと。
早速確認。
$ ls -ltr /usr/local 合計 44 drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 src drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 libexec drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 lib64 drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 games drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 etc drwxr-xr-x. 6 root root 4096 8月 15 20:34 2013 share drwxrwxrwx. 3 root root 4096 8月 17 13:21 2013 sbin drwxr-xr-x. 3 root root 4096 1月 21 10:31 2014 include drwxr-xr-x. 4 root root 4096 1月 21 10:31 2014 lib drwxr-xr-x. 2 root root 4096 1月 21 10:48 2014 bin
ありゃりゃ!?パーミッション777になってるじゃん。これが原因ということね。なんで777にしたのかどうかは定かではないが、あまり好ましくない状態だと思うのでパーミッション変更。
ってことでchmodでパーミッションを変更
所有者がrootになっているのでrootに変更後、パーミッションを変更。
# chmod 755 /usr/local/sbin
よし。これでもう一度確認。
# ls -ltra 合計 52 drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 src drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 libexec drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 lib64 drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 games drwxr-xr-x. 2 root root 4096 9月 23 20:50 2011 etc drwxr-xr-x. 18 root root 4096 8月 15 11:34 2013 .. drwxr-xr-x. 6 root root 4096 8月 15 20:34 2013 share drwxr-xr-x. 3 root root 4096 8月 17 13:21 2013 sbin drwxr-xr-x. 3 root root 4096 1月 21 10:31 2014 include drwxr-xr-x. 4 root root 4096 1月 21 10:31 2014 lib drwxr-xr-x. 13 root root 4096 1月 21 10:36 2014 . drwxr-xr-x. 2 root root 4096 1月 21 10:48 2014 bin
うむ。大丈夫。
結果
warningはこれで消えました。個人環境なので強行突破でパーミッションを変えるという根本的な方法をとってしまいました。
/usr/local/sbinはそもそもどういう種類のコマンドが格納されている?
ちなみに、Linuxではコマンド類は色々なところに散らばっていて、PATHを通しているから特にその辺を意識せずに使えていると思います。
そもそも、/usr/local/sbinはどういうたぐいのコマンドを入れておくべきなのか?ちょっと調べてみました。
http://www.linuxmaster.jp/linux_skill/2010/02/06linux.html
ディレクトリ | 役割 |
---|---|
/usr配下 | ユーザコマンド |
/usr/local配下 | パッケージシステム管理外 |
/usr/local/sbin配下 | 管理者用プログラム |
だそうです。
sbinの"s"ってシステムの略なのかな〜。
ちょっと勉強になった。