Sambaのパーミッション設定で小ハマリ

Sambaのパーミッションの設定で小ハマリしたのでメモ。

Sambaでファイルのパーミッションをコントロールするには、以下のような設定がある。

create mask
force create mode

通常は、これらの設定でパーミッションをコントロールするのだが、以下の様に設定した状態で…

create mask = 0644
force create mode = 0000

ファイルをSamba上でリネームをすると、オーナーの実行権のみが落ちるという現象が解決できずにいた。

たとえば、以下のような、パーミッションが 0755 のファイルがあったとする。

$ ls -l *.pl
-rwxr-xr-x. 1 *** *** 0  7月  3 11:16 2014 test.pl

このファイルを、Samba上でリネームすると、なぜかパーミッションが 0655 になってしまう。

$ ls -l *.pl
-rw-r-xr-x. 1 *** *** 0  7月  3 11:16 2014 test2.pl

つまり、リネームすると u-x になってしまう。
a-x が発生するなら、まだわからないでもないが、なぜ、u-x(オーナーの実行権のみが落ちる)になるのだろう?

もちろん、Samba上からではなく、sshでログインして mv しても、当然の事ながらパーミッションは変化しない。
Samba上でリネームすると、パーミッションが勝手に変化してしまう。

「create mask」「force create mode」の設定をいろいろ変更しても、この現象が発生する。
しかし、そもそも現状の設定では、a-x な設定をしているのだから、u-x だけが発生するという事は理屈の上でもおかしい。これらの設定が原因とは思えない。

「security mask」「force security mode」なども調べてみたが、関係ないと思われるし、「create mask」などの設定と同様、u-x な状態になるのは理屈の上でもおかしい。これらの設定も原因とは思えない。

「Samba リネーム パーミッション」などで検索してみるが、なかなか情報が出てこない。
ピンポイントで「Samba オーナー 実行権」と検索してみたら…あった!

sambaで実行ファイルを更新すると実行フラグが外れる

何ですと?
「map archive」?
まったくノーマークだった伏兵が登場した。
さっそく設定を変えてみる。

create mask = 0644
force create mode = 0000
map archive = no
$ chmod a+x *.pl
$ ls -l *.pl
-rwxr-xr-x. 1 *** *** 0  7月  3 11:16 2014 test2.pl

Samba上でリネームしてみる。

$ ls -l *.pl
-rwxr-xr-x. 1 *** *** 0  7月  3 11:16 2014 test3.pl

おぉ! u+x が維持された。

何でデフォルトがこんな設定なのだろう?

広告

トラックバック 
〔https://blog2.zunbe.com/wp/wp-trackback.php?p=4597〕

    トラックバックはありません。

コメント

    コメントはありません。

コメントしてください

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


広告

まとめページ

取得した資格
登った山

広告

サイト内検索

WordPress

最近のコメント

広告

RSS

RSS 記事
RSS コメント
Server offered by
有限会社パテンティックソフトウェア
Profile for zunbe