Имею несколько машин RHEL6. Один из них экспортирует монтирование nfs в остальные. У меня есть ACL-список на сервере (установлен с помощью setfacl -m
), но ни один из клиентов не видит ни одного из них.
Вот мой экспорт на server1:
/myexport server2.example.com(rw,async,no_root_squash)
Вот мой fstab на server2:
server1.example.com:/myexport /mnt nfs4 noatime,async,lock 0 0
Я безуспешно пытался добавить acl в параметры монтирования fstab. Кто-нибудь знает, почему я не вижу ACL на клиенте?
ACL используются и активны через NFS. Используйте команду nfs4_getfacl
чтобы показать ACL на монтировании NFSv4:
$ nfs4_getfacl /tmp/test
A::OWNER@:rwatTnNcCy
A::alice@nfsdomain.org:rxtncy
A::bob@nfsdomain.org:rwadtTnNcCy
A:g:GROUP@:rtncy
D:g:GROUP@:waxTC
A::EVERYONE@:rtncy
D::EVERYONE@:waxTC
Почему ACL так отличаются от ACL в Linux? Так как NFSv4 ACL и Linux ACL acl (5) - это совершенно другой стандарт! Сервер Linux NFS будет транслировать ACL туда и обратно.
Очень жаль, что linux ls
не показывать +
для файла с NFSv ACL на клиенте .. это вводит в заблуждение.
Чтобы использовать ACL POSIX с NFS, вам нужно было использовать NFSv3.
ACL NFSv4 сильно отличаются от ACL POSIX. Первые устанавливаются с использованием очень специфических nfs4_getacl и nfs4_setacl, а вторые настраиваются с помощью стандартных двоичных файлов getfacl / setfacl. Короче говоря, ACL NFSv4 не имеют ничего общего с ACL POSIX (кстати, ACL NFSv4 намного ближе к ACL CIFS, используемым в среде Windows).