web-dev-qa-db-ja.com

Sambaのアクセス許可が無視される

Smb.confで次の共有を定義しました

[development_server]
    comment = Development directories
    path = /sites
    writeable = yes
    valid users = @dev
    guest ok = no
    directory mask = 0775
    create mask = 0775

問題は、ウィンドウ内でファイルを作成するたびに、そのファイルのアクセス許可が755ではなく764に設定されることです。ただし、ディレクトリは775で正しく設定されます。混乱しています。以下を設定してみました:

[global]
    unix extensions = yes

しかし、これも役に立ちませんでした。

3
nullReference

問題は、私の構成内のセキュリティモード設定(またはその欠如)であることが判明しました。次のsmb.conf構成が機能し、セキュリティグループ「dev」内のすべてのユーザーが共有内で作成するすべてのファイルに対して775を使用できるようになりました。

[development_server]
    comment = Development directories
    path = /sites
    writeable = yes
    valid users = @dev
    guest ok = no

    create mask = 0775
    force create mode = 0775
    security mask = 0775
    force security mode = 0775

    directory mask = 0775
    force directory mode = 0775
    directory security mask = 0775
    force directory security mode = 0775

askubunt を掘り下げているときにこの解決策を見つけました

3
nullReference

小切手 obey PAM restrictionsパラメータ。有効にすると、Sambaは特定のユーザーに対してumask制限付きのファイルを作成します。

2
niziak

_create mask_は、許可ビットが設定されないようにするためにのみ使用できます。これは、マスクがクライアントが設定しようとしたビットでビット単位でANDされているためです。マスクが7に設定されているが、クライアントが何か少ないことを試みる場合。 6、実行ビットの_0 AND 1_は_0_であるため、クライアントは「勝ち」ます。

_force create mask_は逆に機能し、クライアントが設定しようとするマスクをビット単位でORするため、ここで_7_を設定すると、すべてのビットが_x OR 1_、これは常に_1_です。

クライアントが何を設定しようとしているかに関係なく、値_0775_を強制するには、次の2つを組み合わせる必要があります。

_create mask = 0770   (0000 would also work)
force create mask = 0775
_

ドキュメント を参照してください。

2
Sven

この問題のテストに関する警告の言葉:

同じ問題を経験した後、少なくとも私の場合は条件付きであることがわかりました。

  • コンテキストメニューnew-file( 'New Text File.txt')を使用してsamba共有にファイルを作成すると、しませんそのファイルにグループ書き込みビットを設定します(0750)

  • コンテキストメニューの新しいファイルを使用して新しいファイルを作成し、Enterキーを押す前にその名前を変更すると、そのファイルにグループ書き込みビットが設定されます! (0770)

私の解決策は@niziakが警告されたものでした。 PAM制限に従ってください(デフォルトはno)を使用しないでください。

0
durandal