Samba 忽略 POSIX ACL

woo*_*sbw 3 permissions samba file-permissions likewise-open

我有一个运行 Samba 的 Ubuntu 10.04.4 LTS 服务器,并使用 PBIS(以前同样开放)加入了我们的 Active Directory 域。Samba 被配置为使用 AD 用户/组进行身份验证,这工作正常。此外,标准的 Linux 权限(用户、组、其他人)与 Samba 一起正常使用。但是,Samba 似乎完全忽略了使用扩展 ACL 设置的任何权限。

我尝试了在其他地方推荐的各种 smb.conf 配置,但它们似乎都没有任何效果。

机器设置:

  • 文件共享在它自己的驱动器上。来自 /etc/fstab 驱动器的挂载信息是:
    • UUID=372aa637-4b7b-45cc-8340-9d028893c196 /media/news-drive ext4 user_xattr,acl 0 2
  • 机器使用 PBIS(以前同样开放)加入域
  • 共享的 Samba 配置是:
[共享]
   评论 = , 
   nt acl 支持 = 是
   管理员用户 = 
   强制用户 = 
   强制组 = \domain^users
   创建面具 = 0770
   目录掩码 = 0770
  • 全局 Samba 配置
工作组 = 
dns 代理 = 否
服务器字符串 = 
加载打印机 = 否
杯子选项 = 生
来宾帐户 = pcguest
日志文件 = /var/log/samba/%m.log
最大日志大小 = 50
安全 = ADS
领域 = 
套接字选项 = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
接口 = 172.16.0.20 10.4.1.20 127.0.0.1
仅绑定接口 = 是
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
映射到访客 = 坏用户
  • 我也在全局配置中使用了其中的一些,但没有成功
idmap 后端 = idmap_rid:=16777216-33554431
nt acl 支持 = 是
继承 acls = 是
映射 acl 继承 = 是
地图存档 = 否
地图隐藏=否
地图只读=否
地图系统=否
存储 dos 属性 = 是
继承权限 = 是
模板外壳 = /bin/false
winbind 使用默认域 = no

我在这里缺少什么,让 Samba 使用扩展的 ACL?

正在发生的事情的一个例子

我在 samba 共享中有一个文件夹。共享本身在我们的域中是完全开放的(“有效用户”设置设置为 AD 域的“域用户”组。)在该共享中,我有一个在文件系统级别(拥有由一个 AD 用户创建,该组设置为一个 AD 组,其中只有几个人,并且权限 chmod-ed 为 770)

问题是,我需要将该文件夹的访问权限授予另一个 AD 组,因此我运行“setfacl -mu::rwx”以授予他们访问它的权限。这在 Linux 中有效(如果我 ssh 其中一个用户并导航到该文件夹​​)...但如果我连接到同一用户的 SMB 共享,并尝试导航到该文件夹​​,访问将被拒绝。

cfi*_*cfi 5

迟到这个问题,我仍然想指出官方的Samba 文档以支持 ACLs。这对 Samba 4.0.0 以后的版本有效,在提出这个问题时肯定不可用。但由于问题会在搜索引擎中弹出,此链接可能会有所帮助。

基本步骤是:

1.确保文件系统支持acls(现在ext4默认支持,不需要额外的挂载选项)

2. 确保 Samba 编译时支持 ACL。(是的,默认情况下在 Ubuntu 14.04 LTS 上):

smbd -b | grep HAVE_LIBACL
Run Code Online (Sandbox Code Playgroud)

3. 通过在[global]部分中设置以下内容来启用 ACL /etc/samba/smb.conf

vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请访问上面链接的官方文档。