smb.confに「強制生成モード」および「強制ディレクトリモード」パラメータがあるのはなぜですか?

smb.confに「強制生成モード」および「強制ディレクトリモード」パラメータがあるのはなぜですか?

私は読んでいます。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 maskforce create modeとパラメータが存在するのはなぜですかforce directory mode

公式文書を読みました。サンバこれsmb.conf(5)「各パラメータの説明」セクションを含むページ。しかし、これら2つの「力」パラメータが存在する理由は明確ではありません。

答え1

まず、リンクされた文書には次のように記載されています。

パターンの作成

このパラメータは同義語です。マスクの作成

マスクの作成

ファイルが生成されると、必要な権限はDOSモードからUNIX権限へのマッピングに基づいて計算され、結果のUNIXモードはこのパラメータとビット単位のANDに関連付けられます。このパラメーターは、ファイルのUNIXモードのビットマスクと見なすことができます。ここで設定されていないビットは、ファイルが生成されると設定されたモードで削除されます。 [...]

次に、Sambaは以下を使用してこのパラメータからUNIXモードを生成します。力生成モードパラメータはデフォルトで000に設定されています。

だから:

  • create mask作成中のファイルに指定された権限から許可されていない(ブロックされた)権限を削除します。
  • force create mode作成したいファイルに必要な権限を追加してください。

たとえば、次のようにしたいとします。

  1. ファイルにはグループへの書き込み権限がなく、他の誰にも当てはまります。
  2. ファイルには常に所有者の書き込み権限がありますが、所有者に他の権限があるかどうかは関係ありません。

それから:

  1. (1)の場合はcreate mask次のとおりです750

    • ユーザーが所有者権限のために何を追加するかは関係ありませんので、7すべてを許可してください。
    • グループの書き込み権限は必要ないため、5グループに対しては読み取りと実行のみが許可されます。
    • 0他の人にすべてを禁止してください。
  2. (2)のforce create mask場合200

    • あなたは間違いなくそこに書きたいと思うでしょう。だから、2所有者と0残りは関係がないからです。

したがって、ユーザーが権限475(所有者に対して読み取り、グループに対してすべて読み取り、他のすべてのユーザーに対して実行読み取り)を持つファイルを生成しようとすると、(475 & 750) | 200== 450 | 200650読み取りそして所有者のために書き込み、グループのための実行を読みます)。グループへの書き込み権限と他のユーザーへの権限を削除し、create mask所有者への書き込み権限を追加しましたforce create mode

関連情報