我遇到了新迁移的 BDC (2:4.1.6+dfsg-1ubuntu2.14.04.9) 的问题,该 BDC 具有基于 POSIX ACL 的权限。我无法让它作为 PDC 工作,幸运的是,它仍然有一个稍旧的版本 (2:4.1.6+dfsg-1ubuntu2.14.04.7)。
PDC 可以在以下权限下完美运行。该方案非常基础,但允许示例中的“会计”组用户共享文件和文件夹...
# file: accounting
# owner: root
# group: root
user::rwx
group::r-x
group:Accounting:rwx
mask::rwx
other::---
default:user::rwx
default:group::---
default:group:Accounting:rwx
default:mask::rwx
default:other::---
我可能遗漏了什么吗?我让用户在共享中创建目录的唯一方法是公开“其他”权限,这显然是不可取的。我正在尝试使用 acl_xattr 的 Windows ACL,但到目前为止,我还没有能够实现与 POSIX ACL 相同的效果。
PDC 和 BDC 上的 smb.conf 完全相同,当然,除了服务器角色和 PDC 上的 WINS 服务器。共享定义如下。
[accounting]
path = /srv/samba/accounting
writable = yes
nt acl support = yes
真正疯狂的是,在重新设置此类共享进行测试并重新启动服务后,一切似乎都可以通过 访问\\BDC\share
。但是,一段时间后,它会中断,不再允许访问文件夹(Win7、Win10 和 WinXP)。在 WinXP 下,可以使用 访问\\bdc.domain.tld\share
一次,然后停止。在 WinXP 下,也可以通过 访问\\<BDC_IP_ADDRESS>\share
...
下面是测试共享的错误日志。
在此先非常感谢您的任何提示。
--
[2015/10/03 17:38:21.624058, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 255 of length 90 (0 toread)
[2015/10/03 17:38:21.624238, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBntcreateX (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:21.624382, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:21.624469, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.186401, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 256 of length 80 (0 toread)
[2015/10/03 17:38:25.186586, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBtrans2 (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.186679, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.186758, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=50 (SMBtrans2) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.277631, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 257 of length 114 (0 toread)
[2015/10/03 17:38:25.277782, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBntcreateX (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.277911, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.277989, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.278256, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 258 of length 80 (0 toread)
[2015/10/03 17:38:25.278356, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBtrans2 (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.278436, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.278507, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=50 (SMBtrans2) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.282395, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 259 of length 114 (0 toread)
[2015/10/03 17:38:25.282526, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBntcreateX (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.282610, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.282683, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.284720, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 260 of length 90 (0 toread)
[2015/10/03 17:38:25.284848, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBntcreateX (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.284932, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.285005, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.288082, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 261 of length 90 (0 toread)
[2015/10/03 17:38:25.288233, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBntcreateX (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.288386, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.288468, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=162 (SMBntcreateX) NT_STATUS_ACCESS_DENIED
[2015/10/03 17:38:25.290447, 3] ../source3/smbd/process.c:1795(process_smb)
Transaction 262 of length 80 (0 toread)
[2015/10/03 17:38:25.290578, 3] ../source3/smbd/process.c:1398(switch_message)
switch message SMBtrans2 (pid 19932) conn 0x7fb256620060
[2015/10/03 17:38:25.290663, 3] ../source3/smbd/service.c:197(set_current_service)
chdir (/srv/samba/posix_acl) failed, reason: Permission denied
[2015/10/03 17:38:25.290736, 3] ../source3/smbd/error.c:82(error_packet_set)
NT error packet at ../source3/smbd/process.c(1517) cmd=50 (SMBtrans2) NT_STATUS_ACCESS_DENIED
答案1
我找到了解决问题的方法......
查看 /var/log/samba 中的日志,我可以看到 winbind 日志,它不应该在那里。检查后,我可以看到 wbinfo -u 返回了一个用户列表,进一步检查后,我可以看到活动的 winbind 进程。停止 winbind 服务后,情况恢复正常。
因此,使用 sudo apt-get remove winbind 删除该包并重新启动是最终的解决方案。
供参考,使用 Windows ACL 的测试共享似乎也适用于在共享上设置的相同类型的权限。因此 Posix ACL 和 Windows ACL 都可以工作。
有关后者使用的配置的信息如下(不确定 Windows ACL 的第二部分是否需要具备基础知识,但在我的情况下似乎有效,我有时间会进一步调查)。
[windows_acl]
path = /srv/samba/windows_acl
read only = no
; Windows ACL
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
inherit acls = yes
inherit permissions = yes
acl group control = yes
acl map full control = true
nt acl support = yes
ea support = yes
我希望这可以帮助任何遇到类似情况的人。