Я использую папку 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, поэтому это не работает.