猫の手なら貸せる

いろいろ共有できたらいいなとおもってます

マウント用書き込み不可ディレクトリの作成

TimeMachineで、ディスクがマウントされていないのにSambaがフォルダを共有した所為で、SDカードに追記されてしまう事故がそこそこ発生しました。

調べたところLinuxでは標準で「rootでも書き込みができないディレクト」が作れるらしいので、今回設定して試してみました。 f:id:nkhnd:20200415235048p:plain

これでやっと誤爆から解放されます。

Linuxには標準で拡張属性が存在するみたいで、これを使うとディレクトリやファイルに対して特殊な設定が付与できるようです。

linuxjm.osdn.jp

便利!こんな感じで使います。

su root
chmod 000 <設定したいディレクトリ> 
chattr +i <設定したいディレクトリ> 

chmod 000はなくても機能しますが、こうしておいた方がマウントされた時にパーミッションが上書きされたのが一目瞭然なのでおすすめです。

具体的には下のようになります。d---------なんて故意に設定していない限り他にいないので「あっマウントされてないんだな」ってなります。

mountpoint <設定したいディレクトリ>;echo $?
> 0
ls -l <設定したいディレクトリ>
> drwxrwxr-x 1 root  root   10  4月 16 07:42 disk

(マウントを解除)

mountpoint <設定したいディレクトリ>;echo $?
> 1
ls -l <設定したいディレクトリ>
> d--------- 1 root  root   10  4月 16 07:42 disk

mountpointコマンドはディレクトリがマウントされているかを出力できるコマンドです。$?=0でマウント済み$?=1で普通のディレクトリ、です。

特定の用途には役に立ちそうです。