NFSv3 + ACL: маска на клиентах отсутствует

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

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

сервер # getfacl /export/proyectos
getfacl: Eliminando "/" inicial en ru nombres de ruta absolutetos
# file: export/proyectos
# владелец: root
# группа: корень
Пользователь:: RWX
группа:: RWX
другое:: ого
по умолчанию: пользователь:: RWX
по умолчанию: группа:: RWX
по умолчанию: маска:: RWX
по умолчанию: другие:: гх

сервер # getfacl /export/proyectos/innovacion
getfacl: Eliminando "/" inicial en ru nombres de ruta absolutetos
# file: export/proyectos/innovacion
# владелец: root
# группа: проект-инновация
# flags: ss-
Пользователь:: RWX
группа:: RWX
Маска:: RWX
Другой::---
по умолчанию: пользователь:: RWX
по умолчанию: группа:: RWX
по умолчанию: маска:: RWX
по умолчанию: другие:: ---

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

Я монтирую всю акцию на клиенте:

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

Но mask а также default:mask ACL исчезли.

клиент $ getfacl /proyectos/
getfacl: Eliminando "/" inicial en ru nombres de ruta absolutetos
# file: proyectos/
# владелец: root
# группа: корень
Пользователь:: RWX
группа:: RWX
другое:: ого
по умолчанию: пользователь:: RWX
по умолчанию: группа:: RWX
по умолчанию: другие:: гх

клиент $ getfacl /proyectos/innovacion
getfacl: Eliminando "/" inicial en ru nombres de ruta absolutetos
# file: proyectos/innovacion
# владелец: root
# группа: проект-инновация
# flags: ss-
Пользователь:: RWX
группа:: RWX
Другой::---
по умолчанию: пользователь:: RWX
по умолчанию: группа:: RWX
по умолчанию: другие:: ---

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

1 ответ

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

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

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

ACL:

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

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

Другие вопросы по тегам