Мой сервер NFS, похоже, игнорирует вторичные группы. У меня меньше 16 групп на пользователя, но есть --manage-gids
на. Если этот параметр отсутствует, общий ресурс NFS не подключается. Пользователи и группы управляются с помощью LDAP, а аутентификация выполняется с помощью Kerberos. Мой экспорт настроен следующим образом:
> cat /etc/exports
/srv/nfs4 *(rw,sync,fsid=root,crossmnt,no_subtree_check,sec=krb5i,insecure)
> grep /srv/nfs4 /etc/fstab
/home /srv/nfs4/home none bind 0 0
/var/backups/home /srv/nfs4/archive none bind 0 0
> hostname -f
nfs.example.com
Монтирование NFS монтируется следующим образом, как на самом сервере, так и на нескольких других клиентских машинах:
> grep nfs4 /etc/fstab
nfs.example.com:/ /mnt/nfs nfs rw,exec,nfsvers=4 0 0
UID верны, поскольку файловая система NFS смонтирована на самом сервере. Это также происходит, когда я устанавливаю его на другую машину.
> id
uid=1027(kai) gid=1027(kai) groups=1027(kai),27(sudo),100(users)
> ls -n /mnt/nfs/home/kai/test
total 0
drwxr-xr-- 1 1001 100 0 Mar 27 11:44 test1/
drwxr-xr-x 1 1001 100 0 Mar 27 11:44 test2/
drwxr-xr-- 1 1001 1027 0 Mar 27 11:44 test3/
В локальном каталоге (/home/kai/test
и /srv/nfs4/home/kai/test
), Я могу cd
во все каталоги тестов. В /mnt/nfs/home/kai/test
, Я не могу cd
к test1/
. Мой вывод таков, что разрешение группы (r-x
) на вторичной группе users
игнорируется - есть идеи, почему это может быть?
После дальнейшего исследования с wirehark выяснилось, что это проблема на стороне хоста. Клиент выдает LOOKUP
вызовы и получение ожидаемого ответа (что и должно быть, поскольку правильные разрешения показаны с ls
). Однако он не получает правильный ответ на ACCESS
звонки - клиент отправляет Check: Read/Lookup/Modify/Extend/Delete
и получает Allowed: Read/Lookup
для test2
и test3
, но только Allowed: Read
для test1
.