Por que outros usuários podem ver os arquivos na minha pasta pessoal?

29

Acabei de adicionar um novo "usuário de área de trabalho desprivilegiado" e fiquei surpreso ao descobrir que ele pode ver os arquivos na minha pasta pessoal.

Qual é o racional para configurar essas permissões negligentes?

    
por ændrük 02.06.2011 / 03:53

5 respostas

24

Uma pasta Public existe no seu diretório pessoal ( /home/user ) para compartilhar arquivos com outros usuários. Se um outro usuário quiser obter acesso a essa pasta Public , o bit de execução para o mundo deve ser definido no Diretório inicial.

Se você não precisar permitir que outras pessoas acessem sua pasta pessoal (outros seres humanos ou usuários como www-data para um servidor da Web), você ficará bem com chmod o-rwx "$HOME" (remover leitura / gravação / execução de "outros" , equivalente a chmod 750 "$HOME" , pois a permissão padrão é 750). Caso contrário, você deve alterar a umask configuração também para evitar que arquivos recém-criados obtenham permissões de leitura para o mundo por padrão.

Para uma configuração de todo o sistema, edite /etc/profile ; configurações por usuário podem ser configuradas em ~/.profile . Eu prefiro a mesma política para todos os usuários, então eu editaria o arquivo /etc/profile e acrescentaria a linha:

umask 027

Você precisa fazer login novamente para aplicar essas alterações, a menos que esteja em um shell. Nesse caso, você pode executar umask 027 no shell.

Agora, para corrigir as permissões existentes, você precisa remover as permissões de leitura / gravação / execução de outras:

chmod -R o-rwx ~

Agora, se você decidir compartilhar a pasta ~/Public com todos, execute os próximos comandos:

  • chmod o+x ~ - permite que todos descessem no diretório ( x ), mas não recebam uma listagem de diretórios ( r não deve ser adicionado)
  • find ~/Public -type f -exec chmod o+r {} \; - permite que todos leiam os arquivos em ~/Public
  • find ~/Public -type d -exec chmod o+rx {} \; - permite que todos descessem em diretórios e listassem seus conteúdos

Se você estiver usando GNU coreutils (por exemplo, no Ubuntu, não em um sistema embarcado com apenas busybox ), então os dois comandos anteriores usando find e chmod podem ser substituídos por este único comando que recursivamente cria pastas e arquivos legíveis (e adicionalmente adiciona o bit execute (descend) para diretórios somente ):

chmod -R o+rX ~/Public
    
por Lekensteyn 02.06.2011 / 10:04
11

De acordo com um membro da equipe 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 quiser que os arquivos sejam legíveis e executáveis por outras pessoas.

O comando é:

chmod 750 $HOME

Nota: o padrão do Ubuntu é 755

    
por Jason Iverson 02.06.2011 / 04:19
5

Você pode ler a seção Gerenciamento de usuários do Ubuntu Server Guia , que cobre os detalhes necessários. O parágrafo Segurança do perfil do usuário provavelmente responderá suas perguntas - oficialmente.

    
por Pavlos G. 02.06.2011 / 05:09
3

De acordo com Mark Shuttleworth ,

  

"A maioria dos usuários dos sistemas Ubuntu tem uso exclusivo do   máquina (laptop pessoal) ou estão compartilhando com amigos e parentes. Nós   Suponha que as pessoas que compartilham a máquina sejam confiáveis ou   posição para hackear a máquina (inicialização a partir de USB!) trivialmente. Como um resultado,   há pouco ou nenhum benefício "

... removendo essas permissões.

    
por ignis 29.09.2013 / 00:48
1

Eu acho que a resposta de Lekensteyn pode ser melhorada substituindo os dois últimos comandos find por chmod usando a opção -X (note o X maiúsculo). Os dois comandos find podem ser substituídos por

chmod -R o+rX ~/Public

Isso diferencia apropriadamente arquivos e diretórios, mas tem o efeito adicional de permitir que outros executem arquivos executáveis.

    
por spinup 25.03.2012 / 21:11