Estou me perguntando por que, por padrão, meu diretório /home/<user>/
tem permissões definidas para 755
. Isso permite que outros usuários entrem em diretórios e leiam arquivos em minha casa. Existe alguma razão legítima para isso?
Posso definir as permissões 700
para minha casa e todos os subdiretórios, por exemplo:
chmod -R o-xw /home/<user>/
chmod -R g-xw /home/<user>/
sem quebrar nada?
Além disso, é possível definir as permissões em minha casa, para que todos os novos arquivos criados tenham 600
e diretórios 700
?
permissions
files
chmod
Martin Vegter
fonte
fonte
public_html
para permitir ao servidor da Web acessar o diretório. Embora seja muito conveniente para os usuários, não sou muito fã disso.Respostas:
Se o seu diretório pessoal for privado, ninguém mais poderá acessar nenhum dos seus arquivos. Para acessar um arquivo, um processo precisa ter permissão de execução para todos os diretórios no caminho da árvore a partir do diretório raiz. Por exemplo, para permitir que outros usuários para ler
/home/martin/public/readme
, os diretórios/
,/home
,/home/martin
e/home/martin/public
tudo necessidade de ter as permissõesd??x??x??x
(que pode serdrwxr-xr-x
, oudrwx--x--x
ou alguma outra combinação), e, adicionalmente, o arquivoreadme
deve ser legível publicamente (-r??r??r??
).É comum ter diretórios
drwxr-xr-x
pessoais com o modo (755) ou pelo menosdrwx--x--x
(711). O modo 711 (somente permissão de execução) em um diretório permite que outras pessoas acessem um arquivo nesse diretório se souberem seu nome, mas não listarem o conteúdo do diretório. Nesse diretório inicial, crie subdiretórios públicos e privados, conforme desejado.Se você nunca quiser que outras pessoas leiam seus arquivos, crie seu diretório pessoal
drwx------
(700). Se você fizer isso, não precisará proteger seus arquivos individualmente. Isso não prejudica nada além da capacidade de outras pessoas de ler seu arquivo.Uma coisa comum que pode quebrar, porque é uma instância de outras pessoas lendo seus arquivos, é se você tiver um diretório como
~/public_html
ou~/www
que contenha sua página da web. Dependendo da configuração do servidor da web, esse diretório pode precisar ser legível pelo mundo.Você pode alterar as permissões padrão para os arquivos criados, definindo o valor umask no seu
.profile
. O umask é o complemento das permissões máximas de um arquivo. Os valores comuns incluem 022 (gravável apenas pelo proprietário, legível e executável por todos), 077 (acesso apenas pelo proprietário) e 002 (como 022, mas também gravável em grupo). Essas são as permissões máximas: os aplicativos podem definir permissões mais restritivas, por exemplo, a maioria dos arquivos acaba não executável porque o aplicativo que os criou não definiu os bits de permissão de execução ao criar o arquivo.fonte
~/public_html
. Existem outros programas comuns, além do Apache, que podem precisar de acesso à minha casa? Que talpostfix
, por exemplo..forward
ser legíveis por um sistema de email executando como usuário do sistema. Postfix, no entanto, é bom com um privado.forward
.Se você fizer o check-in no RHEL / CentOS 5.x, a permissão padrão é 700, mas no Ubuntu é 755.
De acordo com um membro da equipe do Ubuntuforms.org , é para facilitar o compartilhamento de arquivos entre novos usuários. Você pode alterar a permissão para 700 ou 750 se não desejar que os arquivos sejam legíveis e executáveis por outras pessoas.
Você pode definir
umask 0077
para issoFuncionará como:
A permissão padrão para o diretório é
0777
, portanto, quando você define umask0077
, um novo diretório será criado com a permissão,(0777-0077)
ou seja,0700
como você desejar.fonte
umask
aplica a arquivos? Parece ter efeito apenas quando crio novos diretórios.umask 0077
e criar o arquivo, dir e verificar permissãostat filename
Sim, há uma razão muito legítima. Observe que outros usuários podem ler, mas não podem gravar em seus arquivos. Isso é muito útil em redes profissionais, porque você pode compartilhar seus arquivos facilmente com seus colegas.
Por exemplo, no laboratório em que eu trabalhava, todos nós tínhamos acesso aos
$HOME
diretórios um do outro para poder compartilhar facilmente nossos dados ou scripts. Se minha amiga Alice tivesse um bom script para fazer o X, eu o executaria:Como outros mencionados, para alterar isso, você precisará definir umask. Por exemplo, para tornar novos arquivos e pastas legíveis apenas por você, adicione-o ao seu
~/.bashrc
:fonte
Você precisa alterar o umask, para alterar a forma como novos arquivos são criados na sua pasta pessoal. Isso geralmente é feito editando o script de inicialização do shell, há uma boa visão geral aqui
Quanto à alteração de todas as permissões na sua pasta pessoal para 700, pergunto-me como isso afetaria os serviços em execução nas contas de serviço que precisam de informações de configuração da sua pasta pessoal ... Você pode acabar impedindo que esses serviços leiam os arquivos de configuração necessários. .
fonte