Como as opções de montagem fstab funcionam junto com permissões definidas por arquivo no linux

3

Estou tentando entender qual é a precedência e a combinação das opções de permissão definidas em fstab ao montar um disco com aquelas associadas a cada arquivo no disco, no caso de ext4 ser o sistema de arquivos em uso. / p>

Mais especificamente:

  • sinalizador exec e executável
  • suid e suid flag
  • dev
  • padrões versus nada

Por exemplo, rw in fstab significa que os arquivos terão permissões de leitura e gravação quando montados? O que acontecerá se eles tiverem lido apenas associados ao arquivo? As opções de montagem afetam as permissões dos arquivos montados como armazenados no disco? Ou eles os filtram de alguma forma, mantendo apenas o que é permitido em ambos? O que acontece com arquivos recém-criados no disco montado?

Existem muitos artigos diferentes por aí, sobre o assunto específico das permissões do Linux, mas nenhum deles tropeçou na questão em sua totalidade.
Se alguém tiver um link para esse artigo, seria muito bom compartilhá-lo!

    
por Agelos Assonitis 16.07.2016 / 18:09

3 respostas

1

As opções de montagem não afetam os bits das permissões armazenadas, mas afetam as permissões efetivas. Por exemplo, é possível ter um arquivo com permissões de execução (ou seja, chmod a+x myfile foi bem-sucedido, ls -l mostra o arquivo com permissões de execução etc.), mas se o sistema de arquivos for montado com a opção noexec , tente executar os resultados do arquivo em um erro de "permissão negada". Da mesma forma, a opção ro faz com que qualquer tentativa de gravação falhe, a opção nodev faz com que qualquer tentativa de acessar um dispositivo falhe (mesmo que dispositivos possam ser criados) e a opção nosuid causa qualquer tentativa de executar um arquivo para ignorar os bits setuid e setgid.

Outra maneira de dizer é que o algoritmo para decidir se uma operação de arquivo é permitida é algo assim:

  1. Se for necessária permissão de gravação e o sistema de arquivos estiver montado ro , negue imediatamente.
  2. Se for necessária permissão de execução e o sistema de arquivos estiver montado noexec , negue imediatamente.
  3. Se o arquivo for um dispositivo e o sistema de arquivos estiver montado nodev , negue imediatamente.
  4. Se o usuário do arquivo for um dos grupos do processo que está tentando acessar, permita ou negue com base nos bits de permissão do usuário armazenados no sistema de arquivos.
  5. Se o grupo do arquivo for um dos grupos do processo que está tentando acessar, permita ou negue com base nos bits de permissão do usuário armazenados no sistema de arquivos.
  6. Permitir ou negar com base nos "outros" bits de permissão armazenados no sistema de arquivos.

(simplifiquei para mostrar apenas as partes mais importantes para os nossos propósitos aqui. Outras considerações incluem listas de controle de acesso , atributos estendidos como módulos de segurança imutáveis e exclusivos, como o SELinux e o AppArmor. O mais completo e preciso - mas não fácil- to-read - referência seria o código-fonte, por exemplo, o may_open função no kernel Linux.)

E a determinação do setuid / setgid não é feita (os bits setuid / setgid dos metadados do arquivo não são levados em consideração) se o sistema de arquivos estiver montado nosuid .

    
por 17.07.2016 / 01:24
3

As opções de montagem não alteram o modo do arquivo. Mas pode remover uma permissão. Por exemplo, noexec interrompe a execução de arquivos de arquivos (não diretórios), nosuid anula o efeito de bits setuid, nodev impede que arquivos dev funcionem, readonly pare de gravar. Opções de montagem se aplicam a toda a montagem. E nunca adicione permissões.

"mantendo apenas o que é permitido em ambos" - da sua pergunta, esta frase resume tudo.

Acho que a resposta do @steves é melhor que a minha, exceto:

Or do they filter them out somehow keeping only what is allowed in both?

Sim, é o subconjunto mínimo dos dois.

What happens to files newly created on the mounted disk?

Se você tiver permissão de gravação e opção de montagem rw, os arquivos serão gravados normalmente. Você ainda pode criar um arquivo de dispositivo mesmo quando montado nodev. É só que eles não funcionam como arquivos de dispositivos. O mesmo para setuid, exec, etc.

    
por 16.07.2016 / 18:22
2

For instance does rw in fstab mean that the files will have read and write permissions when mounted?

Isso significa que o sistema de arquivos será montado como leitura / gravação, com o acesso sujeito a permissões de arquivo depois disso. Se você montar readonly, nada poderá gravar nos arquivos, independentemente das permissões.

What will happen if they have only read associated with the file? Do the mount > options affect the permissions of the mounted files as stored on on disk?

Se um usuário tiver permissão de leitura, ele só terá acesso de leitura. Independentemente de você montar readonly ou readwrite.

Or do they filter them out somehow keeping only what is allowed in both?

A opção de montagem é aplicada primeiro e, em seguida, as permissões de arquivo.

What happens to files newly created on the mounted disk?

Se você montou um sistema de arquivos somente para leitura, nenhum usuário poderá criar arquivos lá.

Se você montou um readwrite do sistema de arquivos, os usuários poderão criar arquivos sujeitos a permissões.

    
por 16.07.2016 / 18:23