NFSv3 + ACL: a máscara desapareceu dos clientes

3

Estou compartilhando uma pasta NFS entre um grupo de usuários. O umask padrão nos clientes é 0700, e isso é um problema porque os arquivos recém-criados não serão legíveis / graváveis por outros usuários.

Então, eu estou usando ACLs para forçar o umask 0770 na pasta compartilhada, e isso funciona bem no servidor, mas não nos clientes.

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::---

Como você vê, o padrão (e também um específico no segundo diretório) mask ACLs está sendo aplicado.

Eu montei todo o compartilhamento no cliente:

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)

Mas as ACLs mask e default:mask desapareceram.

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::---

Ele não possui as ACLs default:mask e mask , as únicas que defini. Portanto, a solução proposta para impor umask não funcionará para mim. Por que isso está acontecendo?

    
por Jorge Suárez de Lis 30.08.2012 / 13:36

1 resposta

1

Parece que, mesmo quando utilitários como getfacl e ls mostram que as ACLs estão sendo aplicadas, a máscara de ACL não funciona como esperado em relação ao NFS. Algum subconjunto de operações de arquivo / dir funciona como se a máscara fosse aplicada e outras não.

Por causa disso, mesmo que você possa acessar esses arquivos no lugar, servir as pastas por meio de SFTP ou Samba resulta em permissões estranhas ou não.

Estou usando agora essa ACL, que garante que todos os arquivos tenham as permissões corretas. Oposto ao que poderia ser esperado, o bit de execução não é aplicado a novos arquivos por padrão, somente se o usuário fizer isso.

A ACL:

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

Edit: No entanto, isso não funcionará como esperado para arquivos copiados pelo cp ou pelo nautilus. Eles aplicam o usuário umask, mesmo quando existe uma ACL, então isso não funciona.

    
por 31.08.2012 / 10:38