我在 RHEL7 上运行 Samba 4.9.1,加入了 Win AD 域。在一份中,我设置
force user = foo
,希望强制本地用户 foo. 但是,AD 中也存在相同的用户名,Samba 实际上使用 AD 用户,例如在创建文件时。
getent passwd foo
如预期的那样返回本地用户,因为 /etc/nsswitch.conf 读取
passwd: files winbind
group: files winbind
显然,我设置了选项
winbind use default domain = yes
在 smb.conf 中,我不想改变它,因为我不确定我需要在其他地方改变多少东西......
任何提示如何强制 Samba 首先寻找本地用户?
问候, 埃里克
好吧,正如 Worthweile 要求的那样,我将发布我的解决方法作为答案。
setfactl -R -m u:foo:rwX <share_dir> setfactl -R -d -m u:foo:rwX <share_dir>
第一个命令将授予用户
foo
对共享中所有文件和目录的读取、写入和执行权限。只有当它是一个目录或其他人已经拥有执行权限时,首都X
才会设置执行权限,如man setfactl
.第二个将为共享中的新文件添加与默认相同的权限。
可能,在大多数情况下,Samba 的
force user
选项实际上是权限管理不足的一种解决方法,所以这应该是最干净的方法(Linux 相当于“pythonic”,也许吧?)。但是,可能仍然存在 ACL 不适用的情况,因此关于force user
的行为的问题仍然存在。