Unix / Linux equivalente do Windows 'Ignorar Verificação Completa

4

O Windows tem um privilégio chamado "Ignorar Verificação Completa" (também conhecido como SeChangeNotifyPrivilege . Ele permite que o sistema ignore as verificações de ACL em objetos pai para que um usuário possa [potencialmente] acessar um objeto filho.

Um exemplo provavelmente seria útil:

<file system>
  |
  +-- john.doe
      |
      +-- public

No exemplo acima, normalmente seria clicado o diretório john.doe para que ele tenha controle total (e talvez seu grupo tenha acesso de leitura). No entanto, o diretório public do Doe é legível para todos, para que todos possam ver o que ele está compartilhando.

No Windows, a Ignorar verificação cruzada seria usada para facilitar o cenário acima.

O Unix / Linux oferece o equivalente do Windows Bypass Traverse Checking? Se sim, o que é isso?

Se não, como alguém fornece acesso ao diretório public sem abrir falhas de segurança no diretório pai?

Curiosamente, todas as minhas máquinas Ubuntu descompactam o diretório home para que qualquer pessoa possa acessá-lo no caminho para o diretório public , até mesmo na conta Guest !!! E a conta do Guest tem permissão para investigar o diretório do root também. Mas as contas de convidados em desktops e servidores são uma lata inteira de worms ...

E recentemente me deparei com isso em Cryptree: uma estrutura de árvore de pastas para sistemas de arquivos criptográficos . Acho que a afirmação não estava correta (como Ignorar Verificação Completa" demonstra):

Upward Inheritance of Access Rights: Explicitly granted access to a folder implies inherited access to the names of the folder’s ancestor folders. For example, when granting Alice recursive access to a folder documents/ that resides in /bob/projects/, Alice should automatically be allowed to see the names of its ancestor folders /bob/ and /bob/projects/. Without being able to see the parent folders’ names, it would not be possible for her to reconstruct the correct path of documents/.

    
por jww 28.12.2014 / 23:33

2 respostas

4

O Linux não tem um equivalente exato de "ignorar a verificação completa". Utiliza outros meios para alcançar as mesmas políticas.

Tradicionalmente, o diretório pessoal de um usuário é legível publicamente. Os usuários podem criar subdiretórios para arquivos privados e torná-los privados. Uma boa propriedade de permissões Unix (incluindo esquemas modernos de ACL) é que se qualquer componente de um caminho é privado, o arquivo é privado, não importa quais sejam as permissões do arquivo (ou seja, não há como ignorar a verificação completa…), Portanto, não há risco de um arquivo em um diretório privado ser acidentalmente tornado público. Os aplicativos criam arquivos de acordo com a umask por padrão; se o usuário definir um umask de 077, seus arquivos serão privados por padrão (o padrão umask é tradicionalmente 022, tornando os arquivos legíveis publicamente, mas não graváveis). Aplicativos que esperam que o conteúdo do arquivo seja privado (por exemplo, e-mails) criam arquivos privados, independentemente da umask.

Existe uma maneira em que um arquivo em um diretório privado pode ser acessado por outro usuário: quando um arquivo é movido, qualquer processo que o tenha aberto retém seu acesso ao arquivo. Portanto, um arquivo criado em um diretório privado é seguro, mas um arquivo que foi movido para lá ainda pode ser aberto. Isso só importa se você escrever mais dados no arquivo depois de movê-lo.

É possível criar uma visualização de um diretório em outro local, possivelmente com permissões diferentes. As permissões na exibição não são afetadas pelas permissões na passagem para o diretório real, apenas nas permissões na passagem para o local da exibição, as permissões no próprio diretório e seus arquivos e, se aplicável, os parâmetros da exibição. Visão. As visualizações podem ser criadas com o sistema de arquivos bindfs ou com a montagem de ligação do Linux. Consulte Permitir processo não-root para acessar todos os diretórios home sem comprometer a segurança? , Permita que um usuário leia os diretórios home de outros usuários e Como permitir o acesso a apenas uma pasta NTFS da partição já montada para um usuário específico? / a> para exemplos.

    
por 29.12.2014 / 01:00
3

Até certo ponto:

No modelo de permissão Unix, o r bit em um diretório permite listar seu conteúdo, e o x bits permite obter um identificador para o diretório. Um identificador permite referenciar arquivos e diretórios nesse diretório se você souber o nome deles, e usá-los está sujeito às permissões no inode desse objeto.

Assim, para o cenário que você descreve, você daria a permissão x para outros , permitindo que todos passem por este diretório a caminho do diretório public - tudo o mais nesse diretório no entanto precisa ter permissões definidas para bloquear outros , obviamente.

Esta é (ou costumava ser) uma configuração comum para o diretório public_html no diretório pessoal do usuário.

    
por 29.12.2014 / 04:46