LoginSignup
13
14

More than 5 years have passed since last update.

sambaでファイルを上書きすると実行属性が付いてしまう場合の対処

Last updated at Posted at 2015-01-29

結論

[global]
map archive = no

詳しいこと

Windowsでファイルを保存すると、「アーカイブ属性」という属性が自動的に付く。この属性は、xcopyコマンドなどでファイルをコピーする際に「アーカイブ属性が付いたファイルだけをコピーする。そしてアーカイブ属性を解除する」という挙動をするために使われる。つまり、増分バックアップを取るための属性である。

ところがこの属性、現代においてはあまり使われることは無い。なぜならCPUもハードディスクも十分に速いので、ほとんどのバックアップソフトはファイルの更新日時と先頭数KBのハッシュなど、別のやり方で増分を検出しているからだ。

なぜ実行属性が付くのか

そこで、このあまり使われていないアーカイブ属性に目を付けたのが、sambaだ。unixには実行属性があるが、windowsには無い。無いなら、アーカイブ属性と実行属性を相互変換してしまえば良いではないか、ということである。

つまり、
Windowsでファイルを新規作成、または上書き保存する。

ファイルにアーカイブ属性が付く。

sambaがアーカイブ属性を実行属性に変換して受け取る。

unixファイルシステム上のファイルに、実行属性が付く。

と、こういう仕組みになっている。

解決策

そこで、smb.confにはmap archiveというフラグが用意されている。これは「アーカイブ属性と実行属性を相互変換するか、しないか」という、そのまんまのフラグである。

このフラグをnoにセットすることで、アーカイブ属性は無視されるようになる。

map archive=noなsambaでr+xなパーミッションを設定したい

ちなみに、NTFSが扱えるシステムであれば、Everyoneと、グループと、オーナーのセキュリティ権限を変えることで、ちゃんと実行属性や書き込み属性に反映が出来る。WindowsXP以降であれば、「読み取りと実行」の権限がr+xに該当する。フルコントロールにすればrwxになる。map archiveをnoにしていても、ちゃんとパーミッションの設定は可能だ。

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14