[samba-jp:22315] Re: 共有領域上のWindowsとLinux上のファイルロックについて

Kensuke Nezu nez @ samba.gr.jp
2014年 7月 8日 (火) 11:31:53 JST


根津です。

たかはしさんがおっしゃるように、使用中のファイルを他のプロセスに
操作されたくない場合は、使用するファイルをopen(2)したままの状態で、
rmしてしまえば、ディレクトリエントリ上からは実体のi-nodeにアクセス
する手段がなくなりますので、シェルから操作することはできなくなります。

で、全部のopen()がclose()された段階で、i-nodeの実体がdeleteされます。

これは、伝統的なUNIXプログラムが、「自分だけの一時ファイル」を使うときに
よく使う手法です。

-- 
------
根津 研介 日本Sambaユーザ会/NTTデータ先端技術(株)
802.11セキュリティサイト:http://www.famm.jp/wireless
Microsoft MVP for Identity & Access - Enterprise Security(Apr 2010-Mar 2015)
http://mvp.microsoft.com/en-us/mvp/Kensuke%20Nezu-21081

2014年 7月 8日(火)09:33 に TAKAHASHI Motonobu さんは書きました:
> たかはしもとのぶです。
>
> From: Naoki MATSUMOTO <nekomatu @ gmail.com>
> Date: Mon, 7 Jul 2014 14:06:36 +0900
>
>> 松本です。
>>
>> sanさん、申し訳ございません。
>> 下記のような理由でrmを試すというのはあまり意味がなさそうです。
>>
>> 2014年7月7日 13:46 SATOH Fumiyasu <fumiyas @ osstech.jp>:
>>> UNIX 系の一般的なロック機構はアドバイザリー(勧告的)ロックなので
>>> 無視できますし、ファイルを移動(リネーム)や削除できるかどうかは
>>> ロックとは無関係です。
>> おおっと、、、mandatory lock(強制ロック)ではないのですね。Wikipediaやmanにもそう書いてありましたorz
>> 期待するような他のプロセスからファイルアクセスを保護する。みたいのとは違うと。
>> またひとつ、無知がバレました。
>
> ちなみに、やりたいことはなんでしょうか?
>
>>  あるWindows系通信プログラムが検出して、送信を行います。この送信中に、誤っ
>> てLinux上のシェル(Sambaサーバ上の)[移動とか削除処理]から保護したいのです。
>
> さとうさんのおっしゃるように、ロックは掛かりませんが、
>
> Windowsプログラムの送信中はファイルが open(2) されたままになっていると
> 思いますので、その最中に仮にファイルが削除されたとしても、OS 的には
> ファイルは open されたままの状態が継続されますので、送信中にファイルに
> アクセスできなくなることはないはずです。
>
> 該当ファイルに対する open がすべて close(2) された段階ではじめてファイルの
> 実体も削除扱いになります。
>
> 参考まで。「Linux open ファイル 削除」で検索した結果出てきたページを適当に
> 貼ってみます。
>
> <http://d.hatena.ne.jp/LukeSilvia/20081001/p1>




samba-jp メーリングリストの案内