ことのはじまり
USB ストレージのマウントポイントは Samba 経由で共有フォルダに設定しているため、外部からのアクセスが可能。デバイスのアンマウント後も Samba の設定を更新しない限り、空のマウントポイントは公開されたままとなる。不用意なファイル作成を防ぐためにも何とかしたいと思っているのだが、Samba の設定(smb.conf)は
LinkStation が出力するので、ここに手を入れるのはちょっと厄介(LinkStation の挙動を把握しなければならない)。幸い LinkStation の自動マウントに関してはおおよそ把握できているので、そちらで対応することにした。
難航
具体的にはマウントポイントのパーミッションをマウント時とアンマウント時で切り替えるという案。これ自体はマウントスクリプトを書き換えることで簡単に実装できたのだが、chmod の変更が適用されなかったり、共有が上手くいかなかったり、結構悩まされた・・・。
原因
実はマウントポイントに設定されたパーミッションはファイルシステムをマウントすることで隠されてしまうことを知らなかった。試行錯誤中はマウントやアンマウントを繰り返していたのでマウント時のパーミッションとアンマウント時のパーミッションが自分の中でごっちゃとなり、chmod の変更が適用されていないように見えたというオチ。共有が不可になる現象についてはマウント時の other のパーミッションは 7 にしておかないとダメらしい。r, w は当然必要だが、x くらいは外しておこうと 766 にしたのが災いした。
解決
結局マウントポイントのマウント時のパーミッションは 777 のままにしておく。反対にアンマウント時のパーミッションは 700 に変更。これでマウント時とアンマウント時のパーミッションは勝手に切り替わるわけだ。もちろん空のマウントポイントは Samba 経由でアクセス不可となる。終わってみれば何のことはない、マウントスクリプトから制御しなくても解決した。これだから初心者はコワイ(苦笑)。
今後
細かいことをいうとマウントポイントそのものはまだ見えている。こればかりは Samba の設定を更新しない限りどうしようもない。空であろうがアクセス不可であろうが公開設定はされたままだからである。納得のいくマウントスクリプトが作り終わったら、次のネタとして Samba の設定更新プログラムを自前で実装しようと思っている。
最終更新:2008年09月06日 11:52