sambaを使用していくつかのフォルダーを共有するubuntuサーバーがあります。クライアントが新しいフォルダまたはファイルを作成するときに、smb.confの設定に従ってアクセス許可が設定されません。
特定の共有の現在の設定:
[share]
path = /mnt/share
browsable = yes
guest ok = no
writable = yes
read only = no
create mask = 0774
directory mask = 0774
write list = netuser
sambaクライアント(Windows 7ボックス)が「netuser」アカウントを使用してファイルまたはディレクトリを作成すると、アクセス許可は次のようになります
drwxr-sr-- 2 netuser sambashare 4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare 0 2012-01-22 21:07 New Text Document.txt
親ディレクトリにはグループIDフラグが設定されているため、sambashareグループの所有者です。アイデアは、sambaユーザーとサーバーユーザーの両方がsambashareグループに属しているため、ファイルとディレクトリを編集、削除、および作成できるようにすることです。ただし、作成されたフォルダにはグループセットの書き込みフラグがないため、サーバーユーザーはsudoなしでそれらのフォルダに新しいファイルやフォルダを作成することはできません。
ディレクトリマスク、強制ディレクトリモード、ディレクトリセキュリティモード、および強制ディレクトリセキュリティモードの追加と削除をテストしましたが、動作は変わりません。新しく作成されたファイルとフォルダは、意図された774のアクセス許可ではなく、それぞれ764と754のアクセス許可を取得します。
私は何が欠けていますか? sambaが正しい権限を設定しないのはなぜですか?
ベストアンサー
次のパラメータを使用する必要があると思います:
# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664
# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775
これらの設定がどのように機能するかについての良い説明を探していましたが、man smb.conf
よりも優れたものは見つかりませんでした。これらのオプションについては、少し下にスクロールする必要があります。
基本的に、一言で言えば、Windowsのアクセス許可はUNIX(Linux)と同じではなく、sambaがアクセス許可をマップする方法は少し奇妙です。