У меня две системы Linux, обе работают под Debian Squeeze. Версии (я думаю) задействованного материала:
kernel: 2.6.32-5-xen-amd64
ii nfs-kernel-server 1:1.2.2-4squeeze2 support for NFS kernel server
ii libnfsidmap2 0.23-2 An nfs idmapping library
ii nfs-common 1:1.2.2-4squeeze2 NFS support files common to client and server
ii portmap 6.0.0-2 RPC port mapper
(У клиента нет nfs-kernel-server
участвует.)
У меня есть каталог с ACL:
# file: dirname
# owner: jon
# group: foogroup
# flags: -s-
user::rwx
user:www-data:rwx
group::r-x
group:foogroup:rwx
mask::rwx
other::r-x
default:...
Есть два пользователя, ни один из которых не владеет каталогом:
uid=3001(jake) gid=3001(jake) groups=3001(jake),104(wheel),3999(foogroup)
uid=3005(nic) gid=3005(nic) groups=3005(nic),3999(foogroup)
В jake
пользователь может без проблем создавать файлы в каталоге. В nic
пользователь не может. Все UID / GID одинаковы на клиенте и сервере. Я проверил (анализ пакетов), что правильные идентификаторы uid / gids отправляются через AUTH_UNIX
верны - uid=gid=3005, auxiliary gids=3005,3999
- и сервер отвечает NFS3ERR_ACCESS
, которому ядро на клиенте сопоставляет EACCES (Permission denied)
.
Кто-нибудь может мне здесь помочь?
Я не могу сказать, могло ли это вызвать у вас проблему, но я заметил некоторую странность:
Ваш каталог принадлежит группе foogroup
. foogroup
разрешение поэтому group::r-x
. Но вы устанавливаете дополнительную запись ACL group:foogroup:rwx
. Почему бы тебе просто не установить group:rwx
вместо?
Даже ACL по умолчанию для group:foogroup
не нужно, как и у вас setgid
в вашем каталоге. Таким образом, каждый новый каталог ниже будет автоматически наследовать группу-владелец и setgid
вашего каталога.