/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

「warning: Insecure world writable dir 〜〜〜」が出た時の対処

先日から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"ってシステムの略なのかな〜。

ちょっと勉強になった。