Назад | Перейти на главную страницу

NFSv3 + ACL: маска исчезла на клиентах

Я использую папку NFS для группы пользователей. Umask по умолчанию на клиентах - 0700, и это проблема, потому что вновь созданные файлы не будут доступны для чтения / записи другим пользователям.

Так что я использование ACL для принудительной установки umask 0770 в общей папке, и это нормально работает на сервере, но не на клиентах.

server # getfacl /export/proyectos
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: export/proyectos
# owner: root
# group: root
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::r-x

server # getfacl /export/proyectos/innovacion
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: export/proyectos/innovacion
# owner: root
# group: proyecto-innovacion
# flags: ss-
user::rwx
group::rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:mask::rwx
default:other::---

Как видите, значение по умолчанию (а также конкретное значение для второго каталога) mask ACL применяются.

Монтирую на клиенте всю долю:

172.16.54.56:/export/proyectos on /proyectos type nfs (rw,noatime,rsize=131072,wsize=131072,acregmin=10,acl,nfsvers=3,addr=172.16.54.56)

Но mask и default:mask ACL исчезли.

client $ getfacl /proyectos/
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: proyectos/
# owner: root
# group: root
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

client $ getfacl /proyectos/innovacion
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: proyectos/innovacion
# owner: root
# group: proyecto-innovacion
# flags: ss-
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:other::---

Ему не хватает default:mask и mask ACL, единственные, которые я установил. Таким образом, предлагаемое решение для принудительного применения umask не сработает для меня. Почему это происходит?

Кажется, что даже когда утилиты вроде getfacl и ls показать, что ACL применяются, маска ACL не работает должным образом по NFS. Некоторые подмножества операций с файлами / каталогами работают так, как если бы маска была применена, а другие - нет.

Из-за этого, даже если вы можете получить доступ к этим файлам на месте, обслуживание папок через SFTP или Samba приводит к странным разрешениям или вообще без разрешений.

Сейчас я использую этот ACL, который гарантирует, что все файлы имеют правильные разрешения. В отличие от ожидаемого, бит выполнения не применяется к новым файлам по умолчанию, только если это делает пользователь.

ACL:

setfacl -d --set u::rwx,g::rwx,o::--- /export/proyectos

Редактировать: Однако это не будет работать должным образом для файлов, скопированных cp или nautilus. Они применяют umask пользователя даже при наличии ACL, поэтому это не работает.