Padrões ACL: arquivos vs diretórios

1

As ACLs padrão em um diretório são herdadas por arquivos e subdiretórios criados nesse diretório.

Parece ser um requisito comum que, por padrão, os subdiretórios devam ser executáveis (ou seja, habilitados para CD), mas os arquivos não devem.

Como posso definir ACLs padrão separadas (ou seja, herdadas) para subdiretórios e arquivos (filhos), ou atingir esse efeito?

Adendo:
Raspberry Pi Modelo B, Raspbian, get / setfacl 2.2.51

cat /proc/version
Linux version 3.6.11+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #474 PREEMPT Thu Jun 13 17:14:42 BST 2013
    
por Aaron J Lang 03.11.2013 / 22:10

1 resposta

1

Existe apenas um padrão, mas quando um arquivo herda uma ACL, ele é modificado por uma máscara que é definida no modo que os programas definem quando abrem um arquivo para gravação. (O modo é realmente modificado pelo umask - os bits do umask são removidos, então o modo 666 mais umask 002 torna-se 664.) Se o modo for 664 por exemplo, a máscara será rw- , o que faz com que o sinalizador x seja mascarado para todos os acls nomeados e para o grupo, para que efetivamente não haja permissão de execução. A máscara é criada a partir dos bits de grupo do modo ou dos bits de grupo de um chmod, se isso for usado.

Portanto, se você criar um arquivo normal, ele terá x definido na ACL, mas será mascarado. Por padrão, os diretórios são criados com o modo 755 ou 775 (dependendo do umask), para que a máscara seja rwx ou r-x . Então o x-flag na ACL permanece efetivo.

Eu estava confuso antes com o capital X . Isso só se aplica quando você define ACLs para vários arquivos de uma só vez. Em seguida, você pode definir a permissão para X , o que fará com que os diretórios tenham x e os arquivos não.

    
por 03.11.2013 / 22:47