«前の日記(2015-08-26) 最新 次の日記(2015-12-31)» 編集

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

OSS活動をご支援いただける方を募集しています


2015-12-22

なぜか実行できない (FreeBSD Advent Calendar 2015)

FreeBSD Advent Calendar 2015 22日目です。

エントリーはしてみたものの、ネタがなかったので最近PC-BSDでぶつかった「なぜか実行できない」問題について書きます。PC-BSDはFreeBSDディストリビューションのひとつで、なんかいろいろよろしくやってくれる便利な奴です。

とあるテストのためにPC-BSD上にシェルスクリプトを作成して実行しました。場所は/tmp/foo.shに。

[meta@pcbsd-1685] /tmp% ./foo.sh
./foo.sh: Permission denied.

Permission deniedと怒られてしまいました。パーミッションがないハズはないと思って確認してみるとやっぱり問題ない。

[meta@pcbsd-1685] /tmp% stat foo.sh
735875493 429 -rwxr-xr-x 1 meta wheel 4294967295 20 "Dec 22 14:43:45 2015" "Dec 22 14:48:20 2015" "Dec 22 14:48:20 2015" "Dec 22 14:43:36 2015" 4096 2 0x800 foo.sh

shebangに書いてある /bin/sh も別に問題ない。

[meta@pcbsd-1685] /tmp% stat /bin/sh
3946884166 12721 -r-xr-xr-x 1 root wheel 4294967295 139880 "Aug 20 04:55:18 2015" "Aug 13 01:51:43 2015" "Aug 20 04:55:35 2015" "Aug 20 04:55:35 2015" 131072 196 0x800 /bin/sh

最初からインストール済みのパッケージや、一部の設定が初めからされていることを除けば基本的にPC-BSDはFreeBSDと同じはずなのに、なぜか実行できない。しばらく悩んでいると閃きました。PC-BSDはインストーラがよろしくやってくれてZFSにインストールされることを。

[meta@pcbsd-1685] /tmp% zfs get exec|grep off
tank/tmp                                                           exec      off    local
tank/var/log                                                       exec      off    local
tank/var/tmp                                                       exec      off    local

案の定 /tmp ディレクトリはexecがoffになっていて、ここに作成したファイルは実行権がついていても実行できないのでした。これは別にPC-BSD特有の事象ではなく、FreeBSDでもZFSにインストールしてexec属性をオフにしていれば同じ現象が発生します。

以上、駆け込みで12月22日に間に合いました。

本日のツッコミ(全1件) [ツッコミを入れる]
Σ 名無しのリーク (2016-07-02 14:24)

香川県ルー餃子のフジフーヅはバイトにパワハラで指切断の大怪我を負わせた糞ブラック企業