Se a máscara e seu link para os S_IRWXG
bits não foram o caso, os aplicativos que fizeram vários itens padrão com chmod()
, esperando que funcionasse como chmod()
, tradicionalmente funcionavam em Unixes antigos não ACL, Quer deixar lacunas de segurança ou ver o que eles pensam ser buracos de segurança:
- Aplicativos Unix tradicionais esperam poder negar todo o acesso a um arquivo, pipe nomeado, dispositivo ou diretório com
chmod(…,000)
. Na presença de ACLs, isso desativa somente todas as permissões de usuário e grupo se o antigoS_IRWXG
mapear para a máscara. Sem isso, definir as permissões de arquivo antigo como000
não afetaria as entradas da ACL para usuários / grupos específicos e outros usuários / grupos, surpreendentemente, ainda teria acesso ao objeto.Alterando temporariamente os bits de permissão de um arquivo para nenhum acesso com
chmod 000
e, em seguida, alterá-los novamente era um mecanismo antigo de bloqueio de arquivos, usado antes de os Unixes obterem mecanismos de bloqueio consultivo, que - como você pode ver - as pessoas ainda usam hoje . - Os scripts Unix tradicionais esperam poder executar
chmod go-rwx
e acabar com apenas o proprietário do objeto capaz de acessar o objeto. Novamente, - como você pode ver - essa ainda é a sabedoria recebida mesmo agora, décadas após a invenção das ACLs Unix. E, novamente, isso não funciona, a menos que o antigoS_IRWXG
mapeie para a máscara, porque senão esse comandochmod
não desativaria nenhuma entrada ACL para usuários / grupos específicos, levando a usuários / grupos diferentes do proprietário mantendo acesso a algo que é esperado para ser acessível apenas ao proprietário. - Um sistema em que os bits de permissão eram separados e
and
ed com as ACLs exigiria que os sinalizadores de permissão de arquivo fossemrwxrwxrwx
na maioria dos casos, o que poderia confundir os muitos aplicativos Unix que reclamam quando veja o que eles acham ser coisas que podem ser escritas mundialmente.Um sistema em que os bits de permissão eram separados e
or
ed com as ACLs teria o problemachmod(…,000)
mencionado antes.
Leitura adicional
- Craig Rubin (1989-08-18). Justificativa para a seleção de recursos de lista de controle de acesso para o sistema Unix . NCSC-TG-020-A. Publicação DIANE. ISBN 9780788105548.
- Comitê de Padrões de Aplicações Portáteis da IEEE Computer Society (outubro de 1997). Projeto de Norma para Tecnologia da Informação - POSIX (Portable Operating System Interface) - Parte 1: Interface de Programa de Aplicação do Sistema (API) - Alteração #: Interfaces de Proteção, Auditoria e Controle [Linguagem C] IEEE 1003.1e. Rascunho 17.
- link