permissões 755 em / home / <usuário> /

14

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 700para 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 600e diretórios 700?

Martin Vegter
fonte
1
no RHEL / CentOS 5 padrão é 700, mas no Ubuntu 755
Rahul Patil
2
É comum em determinadas configurações usadas public_htmlpara permitir ao servidor da Web acessar o diretório. Embora seja muito conveniente para os usuários, não sou muito fã disso.
Marco

Respostas:

18

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/martine /home/martin/publictudo necessidade de ter as permissões d??x??x??x(que pode ser drwxr-xr-x, ou drwx--x--xou alguma outra combinação), e, adicionalmente, o arquivo readmedeve ser legível publicamente ( -r??r??r??).

É comum ter diretórios drwxr-xr-xpessoais com o modo (755) ou pelo menos drwx--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_htmlou ~/wwwque 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.

Gilles 'SO- parar de ser mau'
fonte
Não estou executando um servidor Web na minha máquina, portanto não preciso permitir acesso ~/public_html. Existem outros programas comuns, além do Apache, que podem precisar de acesso à minha casa? Que tal postfix, por exemplo.
Martin Vegter 14/10
1
@MartinVegter Good point. Os programas de email sempre são executados como seu usuário quando eles entregam correio, mas alguns sistemas precisam .forwardser legíveis por um sistema de email executando como usuário do sistema. Postfix, no entanto, é bom com um privado .forward.
Gilles 'SO- stop be evil'
3

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.

Além disso, é possível definir as permissões em minha casa, para que todos os novos arquivos criados tenham 600 e os diretórios 700?

Você pode definir umask 0077para isso

Funcionará como:

A permissão padrão para o diretório é 0777, portanto, quando você define umask 0077, um novo diretório será criado com a permissão, (0777-0077) ou seja, 0700como você desejar.

Rahul Patil
fonte
também se umaskaplica a arquivos? Parece ter efeito apenas quando crio novos diretórios.
Martin Vegter 13/10
2
Sim ... você pode verificar no seu shell atual apenas definir umask 0077e criar o arquivo, dir e verificar permissãostat filename
Rahul Patil
3

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 $HOMEdiretó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:

~alice/bin/scriptX.pl mydata

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:

umask 0077
terdon
fonte
3
O pouco sobre o uso do script Perl de Alice é aterrorizante. Copie o script para o diretório inicial, faça uma auditoria e use apenas sua cópia.
AlexWebr 14/10
6
@AlexWebr, antes de tudo, eu o leria primeiro, depois, neste caso, Alice é a pessoa sentada ao meu lado que acabou de escrever um roteiro legal. Podemos assumir que confio neles tanto quanto confiava em qualquer desenvolvedor cujo trabalho eu instalasse e executasse cegamente em minha máquina. Mais do que na verdade. Além disso, este era um laboratório, por isso muitas vezes baixávamos alguns GBs de genomas e era uma maneira fácil de dar acesso a eles.
terdon
1

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. .

Niall Byrne
fonte