私は読んでいます。Sambaを使用してUbuntuでネットワーク共有フォルダを設定する方法。次の設定は、「ステップ2:Sambaの設定」セクションに記載されています。
[sambashare]
comment= Network Shared Folder by Samba Server on Ubuntu
path = /home/your_username/sambashare
force user = smbuser
force group = smbgroup
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
public = yes
read only = no
次の関係を観察してください。
create mask
そしてforce create mode
directory mask
そしてforce directory mode
両方のパラメータペアは同じ値を持ちます。
create mask
パラメータ自体が十分ではないのはなぜですかdirectory mask
?force create mode
とパラメータが存在するのはなぜですかforce directory mode
?
公式文書を読みました。サンバこれsmb.conf(5)「各パラメータの説明」セクションを含むページ。しかし、これら2つの「力」パラメータが存在する理由は明確ではありません。
答え1
まず、リンクされた文書には次のように記載されています。
パターンの作成
このパラメータは同義語です。マスクの作成。
マスクの作成
ファイルが生成されると、必要な権限はDOSモードからUNIX権限へのマッピングに基づいて計算され、結果のUNIXモードはこのパラメータとビット単位のANDに関連付けられます。このパラメーターは、ファイルのUNIXモードのビットマスクと見なすことができます。ここで設定されていないビットは、ファイルが生成されると設定されたモードで削除されます。 [...]
次に、Sambaは以下を使用してこのパラメータからUNIXモードを生成します。力生成モードパラメータはデフォルトで000に設定されています。
だから:
create mask
作成中のファイルに指定された権限から許可されていない(ブロックされた)権限を削除します。force create mode
作成したいファイルに必要な権限を追加してください。
たとえば、次のようにしたいとします。
- ファイルにはグループへの書き込み権限がなく、他の誰にも当てはまります。
- ファイルには常に所有者の書き込み権限がありますが、所有者に他の権限があるかどうかは関係ありません。
それから:
(1)の場合は
create mask
次のとおりです750
。- ユーザーが所有者権限のために何を追加するかは関係ありませんので、
7
すべてを許可してください。 - グループの書き込み権限は必要ないため、
5
グループに対しては読み取りと実行のみが許可されます。 0
他の人にすべてを禁止してください。
- ユーザーが所有者権限のために何を追加するかは関係ありませんので、
(2)の
force create mask
場合200
- あなたは間違いなくそこに書きたいと思うでしょう。だから、
2
所有者と0
残りは関係がないからです。
- あなたは間違いなくそこに書きたいと思うでしょう。だから、
したがって、ユーザーが権限475
(所有者に対して読み取り、グループに対してすべて読み取り、他のすべてのユーザーに対して実行読み取り)を持つファイルを生成しようとすると、(475 & 750) | 200
== 450 | 200
(650
読み取りそして所有者のために書き込み、グループのための実行を読みます)。グループへの書き込み権限と他のユーザーへの権限を削除し、create mask
所有者への書き込み権限を追加しましたforce create mode
。