LDAP 组不适用于文件系统权限

Bee*_*Dog 3 ldap nss

系统是ArchLinux,我使用nss-pam-ldapd(0.8.13-4)将自己连接到ldap。

相关配置文件:

我在 LDAP 中有我的用户和一些组:

[root@kain tmp]# getent group
<localgroups snipped>
dkowis:*:10000:
mp3s:*:15000:rkowis,dkowis
music:*:15002:rkowis,dkowis
video:*:15003:transmission,rkowis,dkowis,sickbeard
software:*:15004:rkowis,dkowis
pictures:*:15005:rkowis,dkowis
budget:*:15006:rkowis,dkowis
rkowis:*:10001:
Run Code Online (Sandbox Code Playgroud)

我有一些目录被 setgidvideo以便视频组保留,并且它们配置为 g=rwx 以便组成员video可以写入它们:

[root@kain video]# ls -ld /srv/video
drwxrwxr-x 8 root video 208 Oct 19 20:49 /srv/video
Run Code Online (Sandbox Code Playgroud)

但是,该组的成员dkowis无法写入该目录:

[root@kain video]# groups dkowis
mp3s music video software pictures dkowis
Run Code Online (Sandbox Code Playgroud)

dkowis 所在的组总数大概有 7 个,我在这里编辑了一些。

[dkowis@kain wat]$ cd /srv/video
[dkowis@kain video]$ touch something
touch: cannot touch 'something': Permission denied

[dkowis@kain video]$ groups
dkowis mp3s music video software pictures
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我的组出现在 中getent groups,但我的文件系统权限没有得到尊重。我尝试创建一个新目录/tmp并将其组权限设置为 rwx,然后尝试在其中写入文件,但它不起作用。它唯一起作用的时候是我把它打开允许 ​​o=rwx 。这显然不是我想要的,而且我无法弄清楚我缺少的部分是什么。

提前致谢。

编辑:停止 nscd 也没有效果。看来不是缓存问题。

编辑:有点过期:

本地定义的组工作得很好,这似乎只影响添加到 /etc/group 的 LDAP 组:

test:x:15007:dkowis
mkdir /tmp/wat
chgrp test /tmp/wat
chmod g+rws /tmp/wat
su - dkowis
cd /tmp/wat
touch something
[dkowis@kain wat]$ ls -la
total 0
drwxrwsr-x 2 root   test  60 Oct 22 11:26 .
drwxrwxrwt 8 root   root 160 Oct 22 11:26 ..
-rw-r--r-- 1 dkowis test   0 Oct 22 11:26 something
Run Code Online (Sandbox Code Playgroud)

841*_*104 5

您遇到了命名空间冲突。

默认情况下,/etc/nsswitch.conf配置为首先查看文件,然后查看外部源。
group: files ldap

这意味着来自的视频组/etc/group将在 ldap 中的视频组之前匹配。这可以通过运行看到getent group video