私の家にsambaを実行しているUbuntuサーバーがあります。誰もが読み取りと書き込みのアクセス権を持つsamba共有をセットアップしようとしています。
私はすべてのユーザーを「sambashare」のunixグループに所属させており、ディレクトリ/ data/sharedを「sambashare」グループのすべてのメンバーに読み取りおよび書き込みアクセスを提供したいと考えています。
理想的には、ユーザーがsambaを使用してそこにファイルを作成する場合、そのファイルはパーミッション0644を持ち、所有者はsername:sambashareである必要があります。
これを機能させるためにsmb.confファイルに何を入れるか、または/ data/sharedフォルダーにどのようなUNIXアクセス許可を与えるかを理解できません。
Smb.confの共有ディレクトリセクションに、以下を配置します。
create mask = 0644
directory mask = 2777
最初はg+s
すべてのディレクトリに対する権限。sambashareグループに割り当てます。 sビットは、作成されたファイルのグループをディレクトリグループと同じに保ちます(2777は新しいディレクトリのsビットを処理します)。
グループSAMBASHARE
の全員が共有にアクセスできるようにするには、[global]
ディレクティブに次を追加します。
create mode = 664
workgroup = SAMBASHARE
security = SHARE
usershare allow guests = yes
/data/shared
をエクスポートするには、ファイルの最後に以下を追加する必要があります。
[data]
comment = shared
path = /data/shared
guest ok = yes
read only = no
public = yes
writable = yes
これでうまくいくはずですが、いくつか moreinformation を収集することを強くお勧めします。
この同じ問題を解決し、この問題を「解決」した多くの役に立たない投稿を確認した後、グループ書き込み可能にしたい特定の共有セクションの1行まで問題を追跡しました。
force directory mode = 2770
「2」は必須であり、Sambaサーバーは、これがないと、新しく作成されたディレクトリをグループ書き込み可能にしません(つまり、0770では不十分です)。 Ubuntu 12.04.01のSambaデーモンを使用して、標準のWindowsクライアントでディレクトリを作成しています。
これがsmb.confのmanページに記載されていればいいですね。
わかりやすくするために、以下は機能しません( "unix extensions = off"でも-ディレクトリは許可0750で作成されます):
[MyShare]
writeable = yes
force group = somegroup
...
directory mask = 0770
directory security mask = 0770
force directory mode = 0770
force directory security mode = 0770