Permissões de "grupo" restritivas, mas permissões de "mundo" abertas?

5

Eu entendo que com permissões de arquivo do Unix, existem octetos de "usuário", "grupo" e "mundo" . Por causa desta discussão, vamos supor que os setuid / sticky bits não existam.

Considere o seguinte exemplo:

$ echo "Hello World" > strange

$ chmod 604 strange

$ ls -l strange
-rw----r-- 1 mrllama foo 12 Apr 13 15:59 strange

Vamos supor que exista outro usuário, john , que é membro do meu grupo, foo .

  • Quais permissões John tem em relação a esse arquivo?
  • O sistema combina a correspondência de permissão mais específica (por exemplo, John não é proprietário, mas ele está no grupo foo , portanto, use as permissões para o octeto "grupo")?
  • ... ou vai pelo mais permissivo dos octetos que se aplicam a ele (isto é, João preenche os critérios para "grupo" e "mundo", assim como o mais permissivo dos dois)?

Perguntas adicionais:

  • E se as permissões fossem 642 ? John só pode ler, escrever apenas ou ambos?
  • Existe alguma razão para ter permissões estranhas como 604 ?
por Mr. Llama 13.04.2016 / 23:10

2 respostas

4

Ao determinar as permissões de acesso usando permissões no estilo Unix, o usuário atual é comparado com o proprietário do arquivo, depois o grupo e as permissões aplicadas são as do primeiro componente correspondente. Assim, o proprietário do arquivo tem as permissões do proprietário (e apenas as), os membros do grupo do arquivo têm as permissões do grupo (e somente essas), todos os outros têm as permissões "outros usuários".

Assim:

  • João não tem permissões para este arquivo.
  • A correspondência de permissão mais específica ganha, não a mais permissiva (os direitos de acesso não são cumulativos).
  • Com permissões 642 , John conseguiu ler o arquivo.
  • Existem razões para conceder permissões como 604 : isso permite que o grupo seja excluído, o que pode ser útil em algumas situações - eu o vi em sistemas acadêmicos com um grupo students , onde a equipe poderia criar arquivos acessíveis para qualquer pessoa, exceto estudantes.

root tem acesso a tudo, independentemente das permissões definidas no arquivo.

Para um controle de acesso mais complexo, você deve procurar no SELinux e ACLs POSIX . (O SELinux, em particular, pode até mesmo limitar a que root tem acesso).

    
por 13.04.2016 / 23:25
2

Supondo que john não tenha% uid0, john não teria permissões, como john é um membro do grupo e a verificação de permissão não consideraria os bits mundiais devido à correspondência de grupo ( fonte: "Programação Avançada no Ambiente Unix", capítulo 4, secção 5, pág. 80 na primeira edição.) 642 resultaria na aplicação dos 4 bits pela mesma razão. 604 é bastante incomum, mas pode se adequar a algo que alguém não queria que outros membros do grupo vissem.

    
por 13.04.2016 / 23:24