Como posso impedir que outras pessoas vejam o conteúdo do meu diretório pessoal, exceto a pasta pública?

2

No Mac OS X, é relativamente fácil impedir que as pessoas vejam os arquivos contidos em seu diretório pessoal: chmod 700 ~

Eu gostaria de realizar uma variação disso. Eu quero isso para que quando as pessoas abrem / Users / stalepretzel, eles só vêem uma pasta listada: Pública. De lá, eu gostaria de definir as permissões do Público para que as pessoas possam entrar nessa pasta e ler qualquer outra coisa que não seja especificada.

Novamente, para esclarecer, eu gostaria que outro usuário não administrador pudesse executar:

$ cd /Users/stalepretzel; ls
Public
$ cd Public
All     the     contents     of
my      public  folder
    
por stalepretzel 06.08.2009 / 03:18

3 respostas

3

Eu tenho medo que isso não seja possível. Um usuário não pode acessar nenhum arquivo ou pasta em qualquer lugar da árvore de um diretório para o qual ele não tenha permissões de leitura. Se o usuário tiver permissões de leitura para um diretório (e todos os seus superdiretórios), ele poderá ls e ver todos os arquivos contidos nele.

Pode não parecer tão arrumado, mas se você quiser impedir que os usuários possam ls do seu diretório inicial, você terá que criar Public em algum lugar fora de ~ . Se for mais fácil acessar seu próprio diretório público em ~/Public , crie um link simbólico (por exemplo, ln -s ~/Public /Users/Shared/stalepretzel ).

    
por 06.08.2009 / 04:15
1

Eu não acho que você possa fazer nada melhor que (coisas padrão do Unix):

$ chmod 711 ~/
$ chmod g-rx,o-rx ~/*
$ chmod 755 ~/Public

para tornar o seu diretório inicial passível de ser travado, mas ilegível, e tudo o mais além de "Público" inacessível.

[Recapitulação de permissão do Unix - Executar bits em um diretório permite a travessia, Bits de leitura permitem ver o conteúdo.]

Infelizmente, isso não permite que ninguém veja que sua pasta Public existe - e não há como fazer isso, porque a existência da pasta Public depende da capacidade de ler seu diretório inicial, pois esse é o "arquivo" que contém ele (os nomes estão nos diretórios pai, as permissões fazem parte do arquivo inode).

    
por 19.08.2009 / 13:30
-1

Abra o diretório inicial para ler:

$ chmod 0744 ~

e esconda tudo lá:

$ chmod 700 ~/*

abra apenas o diretório público:

$ chmod 0744  ~/Public

Nota: Editou a ordem de comando para torná-la correta

    
por 06.08.2009 / 03:24