Definindo permissões de arquivos padrão no diretório compartilhado usando ACL e umask

2

Nós temos uma caixa Linux rodando o Ubuntu 10.04. Sua função principal é um servidor web e é configurado com (eu acho) uma pilha LAMP convencional.

Os desenvolvedores têm acesso a um diretório comum "dev", que contém um subdiretório que serve como raiz da web. Todos os desenvolvedores têm acesso SSH individual.

Quando os desenvolvedores criam arquivos na árvore de diretórios "dev" ou puxam arquivos para "dev" de um repositório, queremos que as permissões de arquivo sejam rwxrwxr-x. Em vez disso, arquivos recém-criados têm permissões de rw-r - r--. Modificando ACLs e configurando id de grupo e usuário em "dev" com bits pegajosos, etc. Consegui obter arquivos recém-criados com permissões de rw-rw-r -.

Eu assumo que o problema está na configuração de umask atualmente definida usando o valor global de 022 em / etc / profile. Eu não quero mudar a umask globalmente ou para cada desenvolvedor para permitir permissões padrão mais relaxadas.

Não vejo como alcançar o que queremos com ACLs e umask, a menos que esteja faltando alguma coisa. Certamente, esse é um requisito bastante comum para desenvolvedores da Web que trabalham em projetos compartilhados.

Existe uma abordagem preferida ou recomendada?

Inicialmente eu configurei o gid em "dev" como segue.

chmod g+s dev
ls -l
drwxrwsr-x  8 755 admin 4096 Jan 19 13:24 dev

A ACL padrão em "dev" é a seguinte.

getfacl dev

# file: dev
# owner: 755
# group: admin
# flags: -s-
user::rwx
group::rwx
other::r-x

Eu apliquei uma ACL para o grupo "admin" (ao qual os desenvolvedores pertencem).

setfacl -Rm d:g:admin:rwX

getfacl dev

# file: dev
# owner: 755
# group: admin
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:admin:rwx
default:mask::rwx
default:other::r-x

Eu crio um arquivo e verifico as permissões do arquivo.

touch dev/foo

ls -l dev

-rw-rw-r--+  1 duncmc admin    0 Jan 19 16:03 foo

Desta vez, adiciono uma ACL ao meu usuário "duncmc"

setfacl -Rm u:duncmc:rwX dev

getfacl dev
# file: dev
# owner: 755
# group: admin
# flags: -s-
user::rwx
user:duncmc:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:admin:rwx
default:mask::rwx
default:other::r-x

Eu criei um novo arquivo e verifique as permissões.

touch dev/bar

ls -l dev

-rw-rw-r--+  1 duncmc admin    0 Jan 19 16:07 bar
-rw-rwxr--+  1 duncmc admin    0 Jan 19 16:03 foo

Adicionar uma ACL para meu usuário parece ter alterado a permissão do grupo (was rw- now rwx) no arquivo existente "foo". O arquivo recém-criado herdou permissões diferentes. Isso não faz sentido para mim e sugere que há algo fundamental sobre a maneira como isso funciona que eu não entendo.

    
por duncmc 19.01.2011 / 14:39

1 resposta

1

Acontece que as permissões de arquivo de rw-rw-r-- (ou 644) são adequadas para nossos requisitos.

    
por 21.01.2011 / 23:36