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 существует, поэтому это не работает.