为什么 Samba 不允许本地组中的 AD 用户具有写访问权限?

为什么 Samba 不允许本地组中的 AD 用户具有写访问权限?

我已经配置了 samba 3.6.3 以在我的 ubuntu 机器上使用 AD。配置似乎是正确的,getent group、getent passwd 等命令从 AD 返回组和用户。我可以授予 AD 用户对文件夹的权限,并使用 sudo 让该用户有权访问。但是,当通过 samba 时,用户无权访问该文件夹。以下是一些测试代码。首先只测试 winbind 和 linux 权限:

sudo mkdir /tmp/test
sudo chown root:sambashare /tmp/test
sudo chmod 775 /tmp/test
sudo usermod -G sambashare DOM+user1
sudo -u DOM+user2 touch /tmp/test/file
  touch: cannot touch `test/file': Permission denied
#good because DOM+user2 is not in sambashare group
sudo -u DOM+user1 touch /tmp/test/file
#success!
ls -l /tmp/test
  -rw-r--r-- 1 DOM+user1 DOM+domain users 0 Jan 14 16:53 test/file

现在配置 samba 共享

[Test]
        path = /tmp/test
        writable = yes
        follow symlinks = yes
        valid users = DOM+user1,@sambashare

该目录对用户可见。但不允许创建新目录或文件。

如果我更改 Linux 权限:

chown DOM+user1 /tmp/test

我可以从 Windows 写入 Samba 共享。请注意,我没有向 Samba 或其他任何东西添加写入列表,只是在 Linux 上添加了该共享上的用户所有权。并且 Linux 之前允许用户根据组权限写入该文件夹。

我尝试通过“转到 -> 打开位置 -> smb://”从 Windows 7 框和 Ubuntu 框打开共享。同样的问题。所以我不认为这是 Windows 的问题。

有人知道发生了什么事吗?

编辑

我正在尝试按本地组对域用户进行分组并允许访问某些共享,这样我就不必麻烦 AD 管理员创建自定义组。我还想使用文件系统权限而不是 Samba 写入列表。它更简洁,而且 Samba 不是唯一的服务。

将域组映射到本地 Linux 组并不是我想要实现的。

例如,我在本地创建本地 dev_team1、dev_team2 组。将 DOM+sally 添加到 dev_team1,将 DOM+john 添加到 dev_team2,然后使用 ACL 设置文件系统权限。

我认为这种配置是可行的,因为 winbind 正在将域组/用户映射到 samba 指定的范围:

idmap config * : backend = tdb
idmap config * : range = 20000-999999

当你执行getent 组;getent 密码您将获得 ID > 20,000 的域组/用户列表。因此,基于此,我假设 samba 对用户进行身份验证,为他们分配其中一个 ID,而 ID 20,000 是属于本地组 500 还是域组 21,000 的一部分并不重要。

可能不会...

答案1

方法 1 - 更改组

尝试关注

chown :DOM+domain /tmp/test

然后重新测试。

方法 2 - 强制分组

使用 sambaforce group为共享指定默认组

[Test]
        path = /tmp/test
        writable = yes
        follow symlinks = yes
        force group = sambashare
        valid users = DOM+user1

方法 3 - 将域用户添加到域组

这实际上是一种通用方法 1,也是这种共享中的常见方法

[Test]
        path = /tmp/test
        writable = yes
        follow symlinks = yes
        force group = sambashare
        valid users = @DOM+domainshare, @sambashare

创建一个 AD 组 domainshare,并将访问共享所需的任何域用户添加到其中。

sambashare 组中的 linux 用户可以访问该共享。

相关内容