O chmod 700 em um diretório é suficiente para impedir o acesso arbitrário aos subdiretórios?

4

Se eu chmod 700 o diretório home do usuário (no Linux), faz essa garantia que outros usuários não-privilegiados não podem acessar nenhum subdiretório ou arquivo sob aquele diretório home? Ou existem exceções sorrateiras para isso?

Apenas para ser concreto, se eu tiver um diretório / home / foo que é de 700, e tem um subdiretório "bar" que é 777, pode qualquer outro usuário no sistema leia bar? Ou é garantido que não é legível?

    
por recampbell 16.08.2010 / 17:07

2 respostas

11

Sim. Para que outro usuário atravesse em qualquer subdiretório, ele precisa ler o diretório base. Se não tiver permissões (ou seja, 700), não será possível ler nada lá. Certifique-se também de que o diretório base (/ home / foo) seja de propriedade do usuário foo. Um usuário, barra, não deve poder acessá-lo.

    
por 16.08.2010 / 17:13
-3

Ter 700 perms em um diretório é apenas um primeiro passo na direção certa.

Se / home / foo for 700 e / home / foo / bar for 777, qualquer um ainda poderá escrever para bar, contanto que saiba que a barra está lá, pois eles não têm privilégios de navegação para / home / foo. É por isso que às vezes você precisa explodir o chmod -R o-rwx / home / foo. Também para evitar problemas futuros, defina o umask para algo mais restritivo como 077 ou 027, dependendo de suas necessidades.

Além disso, você deve certificar-se de que todos os arquivos em / home / foo / são de propriedade do usuário que você deseja (provavelmente o usuário chamado foo neste caso). Se você tiver arquivos de propriedade de outra pessoa, o 700 protegerá o acesso a esse arquivo para seu proprietário, não para o proprietário do diretório.

    
por 16.08.2010 / 20:35