Arquivo Cálculo de máscara de ACL: por quê?

5

Estou tentando configurar um modelo de permissão ACL adequado em um diretório compartilhado usando ACLs, mas estou tendo problemas. Mesmo que eu tenha definido um padrão "user: user1: rwx", os arquivos criados pelo user2 não são graváveis pelo user1, por causa do cálculo da máscara. Diz que efetivo é "r -".

De acordo com a página man, a máscara é calculada fazendo uma união do grupo proprietário, outros grupos nomeados e usuários nomeados. Somente as permissões que todos eles possuem serão ativadas na máscara (a parte do sindicato).

Mas por quê? Se isso acontecer, como posso dizer "usuário usuário1 pode ler e escrever, sempre"?

Além disso, o usuário1 não pode gravar em arquivos criados pelo usuário2, mas pode excluí-los ...

Editar: esclarecimento:

Esta é a acl atual de um diretório em questão:

# file: NNHD/
# owner: user1
# group: user1
user::rwx
user:user1:rwx
user:user2:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:user1:rwx
default:user:user2:rwx
default:group::rwx
default:mask::rwx
default:other::---

Isso tem máscaras adequadas.

Quando user2 cria um arquivo nesse diretório, é dado isto:

# file: test
# owner: user2
# group: user2
user::rw-
user:user1:rwx                  #effective:r--
user:user2:rwx                  #effective:r--
group::rwx                      #effective:r--
mask::r--
other::---

Não entendo por que isso acontece ... O que devo fazer para torná-lo gravável para o usuário1?

    
por Halfgaar 18.01.2011 / 12:47

2 respostas

3

Sou relativamente novo no ACL no unix, mas acho que você cometeu um erro lógico. Você afirma o seguinte: "De acordo com a página do manual, a máscara é calculada fazendo uma união do grupo proprietário", mas nas configurações da ACL você tem a regra "group :: rx" e "mask :: rwx" que faz a máscara "rx" & & "rwx"="r-x" em novos arquivos criados naquele diretório.

O acima também explica por que isso afeta somente o usuário1, já que "group :: r-x" é o grupo do proprietário (user1). Você só precisa escrever permissões para a pasta, não para o arquivo, para exclusão no linux.

A maioria das aplicações no linux cria arquivos com permissão "rw-", como o touch, por exemplo. Então, provavelmente foi assim que passou de "r-x" & & "rw-"="r--" no final.

Então, o óbvio seria se você quiser permissões de leitura + gravação de usuário para os arquivos na pasta, você deve definir o grupo e a máscara para rw

Meu desembarque neste site foi uma pesquisa no Google por desabilitar o cálculo automático de máscaras na ACL, mas acho que estou sem sorte. Esta resposta pode ser útil para outros Googlers:)

    
por 11.08.2011 / 09:22
0

(suponho que você esteja no Linux aqui)

Você pode definir a máscara explicitamente com as ACLs de maneira semelhante à maneira como define as próprias ACLs usando setfacl m::mask

por exemplo:

jim@abox:/tmp$ getfacl temp/
# file: temp/
# owner: jim
# group: jim
user::rwx
user:admin:rwx
group::r-x
mask::rwx
other::r-x

jim@abox:/tmp$ setfacl -R -m m::rx temp/
jim@abox:/tmp$ getfacl temp/
# file: temp/
# owner: jim
# group: jim
user::rwx
user:admin:rwx                #effective:r-x
group::r-x
mask::r-x
other::r-x
    
por 18.01.2011 / 13:27