Samba ファイルサーバーを Active Directory メンバーに設定しました。ファイルサーバーが正常に動作しており、ユーザーは共有にアクセスしたり、ファイルとフォルダを作成したり、削除および変更したりすることができます。
次に、次のシナリオを考えてみましょう。
a) ユーザ「管理者」はフォルダを作成し、次のように権限を付与します。ドメイン管理者=すべての権限、ドメインユーザー=変更。これらの権限がある場合は、「ドメイン管理者」のすべてのメンバーがフォルダの権限を編集できます。ただし、「ドメインユーザー」のメンバーは権限を見ることができ、変更することはできません。
b) 一般的な「ドメインユーザー」としてSambaファイルサーバーにログインし、新しいフォルダを作成しました。 a)で予想どおりに権限を編集することはできません。しかし、私ができることは、「詳細」に移動して継承を無効にすることです。その後、Windowsはサブフォルダとファイルの権限を変更する必要があるかどうかを尋ねます。驚くべきことに、この方法はうまくいきます。これで、権限を変更できない一般的な「ドメインユーザー」として、親フォルダがすべての権限を拒否しても、作成したばかりのフォルダに対する「すべての権限」を取得できます。
私のSamba設定にACL継承の問題があると思いますが、制限されたユーザーがACL継承をオフにすることを許可してはいけないと思います。何が問題なのでしょうか?
以下は私のsmb.conf
合計ですshares.conf
。
[global]
# ...... removed some stuff that is not important
#-------------------------------------------------------------------
# idmap
#
idmap config * : backend = tdb
idmap config * : range = 10000000-20000000
idmap config MYDOMAIN : backend = ad
idmap config MYDOMAIN : schema_mode = rfc2307
idmap config MYDOMAIN : range = 500-9999999
idmap config MYDOMAIN : unix_primary_group = yes
#-------------------------------------------------------------------
# winbind
#
#winbind enum users = yes
#winbind enum groups = yes
ea support = yes
vfs objects = catia fruit acl_xattr streams_xattr
fruit:metadata = stream
fruit:model = MacSamba
fruit:veto_appledouble = no
fruit:posix_rename = yes
fruit:zero_file_id = yes
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
inherit acls = yes
inherit permissions = yes
map acl inherit = yes
nt acl support = yes
include = /etc/samba/shares.conf
そしてshare.conf:
[pub]
comment = Public
path = /tank/pub
read only = no
編集する:
もう少し実験してみました。私は、制限されたユーザーが自分が所有するフォルダの継承を無効にできることが重要であることがわかりました。問題は、これをどのように防ぐことができるかということです。 「Inherit Owner = Yes」を鉱山に設定してこれを実行しましたsmb.conf
。これにより、すべての新しいファイルとフォルダが「root」によって所有されるため、明示的に付与されていない限り、誰もがすべての権限を持つことはできません。
答え1
あなたは恋しいですacl group control = yes
:
このパラメータが設定されると、Samba [...]はファイルまたはディレクトリのデフォルトのグループ所有者がファイルの権限とACLを変更できるようにします。
次の部分をテストしておらず、テストすることはできませんが、引き続き表示されます。
このパラメーターは
inherit owner
このオプションと一緒に使用するのが最善です。UNIX setgidビットセットを含むディレクトリを含む共有でも使用できます。これにより、作成された新しいファイルとディレクトリが含まれているディレクトリのグループ所有権を継承します。
読んでください。 ACL 構成設定は次のように設定できます。
acl group control = yes
acl map full control = no
inherit acls = yes
inherit owner = windows and unix
map acl inherit = yes
既定では、Windows ACLとUNIXファイルの権限(少なくとも表面的な権限)は実際には互いにまったくマッピングされておらず、Windows共有で権限が正しく機能するには多くの変更が必要です。