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

36

Acabei de adicionar um "usuário de desktop" novo e sem privilégios e fiquei surpreso ao descobrir que ele pode ver os arquivos na minha pasta pessoal.

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

ændrük
fonte
Relacionados: unix.stackexchange.com/a/315197/85039
Sergiy Kolodyazhnyy

Respostas:

32

Existe uma Publicpasta no diretório inicial ( /home/user) para compartilhar arquivos com outros usuários. Se um outro usuário quiser obter acesso a essa Publicpasta, 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 humanos ou usuários gostam www-datade um servidor da web), você ficará bem em chmod o-rwx "$HOME"(remover a leitura / gravação / execução de "outro", equivalente a chmod 750 "$HOME"uma vez que a permissão padrão é 750 ) Caso contrário, você também deve alterar a umaskconfiguração para impedir que arquivos recém-criados obtenham permissões de leitura para o mundo por padrão.

Para uma configuração em todo o sistema, edite /etc/profile; as configurações por usuário podem ser configuradas em ~/.profile. Eu prefiro a mesma política para todos os usuários, portanto, edito o /etc/profilearquivo e acrescento 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 027no 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 ~/Publicpasta com todos, execute os próximos comandos:

  • chmod o+x ~- permite que todos desçam no diretório ( x), mas não recebem uma lista de diretórios ( rnão devem ser adicionados)
  • find ~/Public -type f -exec chmod o+r {} \; - permitir que todos leiam os arquivos em ~/Public
  • find ~/Public -type d -exec chmod o+rx {} \; - permitir que todos descam para diretórios e listem seu conteúdo

Se você usa o GNU coreutils (por exemplo, no Ubuntu, e não em um sistema incorporado apenas busybox), os dois comandos anteriores usam finde chmodpodem ser substituídos por este único comando que torna recursivamente legível pastas e arquivos (e adiciona adicionalmente a execução (descida) bit apenas para diretórios ):

chmod -R o+rX ~/Public
Lekensteyn
fonte
13

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.

O comando é:

chmod 750 $HOME

Nota: O padrão do Ubuntu é 755

Jason Iverson
fonte
2
É claro que outros usuários não devem ser sudoers .
Pablo A
7

De acordo com Mark Shuttleworth ,

"A maioria dos usuários dos sistemas Ubuntu usa exclusivamente a máquina (laptop pessoal) ou está compartilhando com amigos e parentes. Assumimos que as pessoas que compartilham a máquina são confiáveis ​​ou estão em posição de invadir a máquina (inicialização do USB!) trivialmente. Como resultado, há pouco ou nenhum benefício "

... de remover essas permissões.

ignis
fonte
12
Eu acho que ter o mesmo comportamento na edição Server é uma falha de segurança
warvariuc
4
Essa é uma explicação louca. Além das contas pessoais, existem contas técnicas que as pessoas podem usar para isolar aplicativos. Além disso, existem muitas instruções sobre como configurar um servidor ftp local que basicamente compartilha a conta na máquina.
Barafu Albino
4
Eu sei que esse é um tópico antigo, mas considere isso como uma decisão estúpida. Imagine que um dos usuários execute o aplicativo / script (pode ser involuntariamente), capaz de ler e enviar arquivos de qualquer outro perfil.
mauron85
5

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

Pavlos G.
fonte
4
Agradeço a fonte oficial. Infelizmente, porém, parece que não fornece nenhuma justificativa.
ændrük
1

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

chmod -R o+rX ~/Public

Isso diferencia adequadamente entre arquivos e diretórios, mas tem o efeito adicional de permitir que outras pessoas executem arquivos executáveis.

spinup
fonte
0

Como é a privacidade que lhe interessa (a julgar pelas tags aplicadas), é muito possível que a definição de permissões seja insuficiente (consulte a resposta de ignis ). A resposta pode ser algo semelhante ao diretório inicial criptografado . Esta solução foi projetada especificamente contra o ataque de outro usuário de um computador. Obviamente, ele não poderá impedir que outro usuário danifique seus arquivos (simplesmente removendo o ~/.Privatediretório, apagando todos os arquivos), mas eles não poderão montar o diretório e ver os arquivos sem a sua senha.

A maneira mais fácil de conseguir isso é durante o processo de instalação, há uma caixa de opções indicando "Criptografar seu diretório pessoal" e você precisa selecioná-lo.

Como é improvável que você deseje reinstalar apenas para isso (e porque ele ainda carrega todos os riscos envolvidos em fazê-lo sem reinstalar), você pode fazer o seguinte:

sudo apt-get install encryptfs-utils
encryptfs-migrate-home
v010dya
fonte
-1

Se você realmente precisa de um alto nível de segurança: reinstale e certifique-se de escolher a opção para criptografar todo o seu disco. Isso exigirá uma senha para iniciar a máquina. É claro que você também pode criptografar sua pasta pessoal mais uma vez, com alguma degradação no desempenho; embora não seja perceptível para uso normal.

Observe que a criptografia da sua pasta pessoal desabilitará aplicativos como o Dropbox. O Dropbox não é um armazenamento seguro que respeite a privacidade, de modo que pode ser um ponto trivial. No entanto, se você precisar de armazenamento seguro e privado na nuvem, eu recomendaria pessoalmente o MEGAsync, pois somente você teria as chaves para acessar os dados.

SLS
fonte