システムは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:
そして、ビデオグループが残るようにsetgid video
であるディレクトリがいくつかあり、それらはvideo
グループのメンバーがそれらに書き込むことができるようにg = rwxで構成されています。
[root@kain video]# ls -ld /srv/video
drwxrwxr-x 8 root video 208 Oct 19 20:49 /srv/video
ただし、そのグループのメンバー、たとえばdkowis
はそのディレクトリに書き込むことができません。
[root@kain video]# groups dkowis
mp3s music video software pictures dkowis
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
グループが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
名前空間の衝突が発生しています。
デフォルトでは、/etc/nsswitch.conf
は、最初にファイルを調べ、次に外部ソースを調べるように構成されています。group: files ldap
。
これは、/etc/group
のビデオグループがLDAPのビデオグループの前に一致することを意味します。これは、getent group video
を実行することで確認できます。