Restringir permissão de usuário no linux

Olá pessoal,

Estou criando um usuário para o meu irmão no meu Raspberry Pi para ele usar como servidor de arquivos/armazenamento, porém gostaria que esse novo usuário que estou criando para ele tivesse acesso única e exclusivamente a pasta /home dele e mais nada, o resto fosse completamente bloqueado para leitura/escrita/execução.

Mas o que me incomodou muito no linux é que pelo que entendi, a única forma de fazer isso é indo na raiz (/) e dando um “chmod 700” em absolutamente tudo, exceto o “/home” do usuário novo pro meu irmáo.

Mas isso me parece extremamente drástico, é como se eu quisesse mover um objeto pequeno até uma montanha mas ao invés de levar o objeto até a montanha eu trouxesse a montanha até o objeto (não sei se me fiz claro com esse exemplo :rofl:)

Enfim… a solução que procuro seria apenas restringir este único usuário ao invés de modificar por completo todo o sistema. Algo que afetasse apenas a este único usuário somente e o sistema continuasse normal sem modificação. Algum comando do tipo “Este usuário X não pode fazer nada além de ver sua própria pasta /home”.

Alguém teria uma ideia para isso ?

2 curtidas

Olá @lucianopp, tudo bem contigo?

Sem saber como você estruturou seu servidor, fica bem difícil dar uma dica mais objetiva, mas, vou comentar com as possibilidades mais comuns.

Se você fizer isso, grandes chances do seu sistema parar de funcionar. Esse método não é drástico, ele não é recomendável.

Para restringir outros usuários de forma “pesada” você precisaria utilizar recursos como policies, mas, existe um limite. O uso normal do computador demanda que os programas usem a permissão do usuário para ler arquivos de configuração e executáveis, então para “bloquear” totalmente o sistema e impedir qualquer leitura é simples: não crie um usuário para outras pessoas. :smiley:

Mas, se a primeira hipótese não for uma opção, existe uma forma prática de você preservar a privacidade dos usuários e não permitir que eles fiquem fuçando no diretório de outras pessoas é usar as diretivas de grupo.

Isso não vai impedir a leitura de dados do sistema.

Por padrão, usuários em sistemas Linux sempre recebem um grupo com o mesmo nome:

cat /etc/passwd|grep $USER
eddiesilva:x:1000:1000:Edson Silva:/home/eddiesilva:/bin/bash
cat /etc/group|grep $USER
eddiecsilva:!:1000:

Então, para preservar de forma simples a privacidade dos diretórios padrão dos usuários, basta você mudar as permissões das pastas para que apenas o usuário e os membros do seu grupo consigam ter acesso.

Algo como:

chmod 750 /home/trocar_pelo_dir_do_usuario

E depois:

chown trocar_pelo_id_do_usuario:trocar_pelo_grupo_do_usuario

Você pode entender mais sobre permissões de usuários, neste vídeo.

Por outro lado, dependendo da estrutura do seu servidor de arquivos você não precisa criar um usuário local para dar acesso ao seu irmão. Basta criar um usuário com acesso remoto somente no servidor, serviços como o Owncloud ou Nextcloud podem fazer isso de maneira muito eficiente.

P.s.: e lembre-se de não dar permissões de SUDO para os usuários restritos.

:vulcan_salute:

2 curtidas

Muito boa as dicas, muito obrigado.

Eu cheguei a testar o nextcloud mas ele fica um pouco pesado no meu raspberry (1gb de RAM só) é uma solução muito completa mas o meu caso é muito simples mesmo, só pra guardar alguns arquivos mesmo em um backup seguro.

Basicamente vou ter que proteger meu /home com o chmod 750, e não vou fazer nenhuma modificação nas pastas da raiz como /etc /boot etc pois podem quebrar meu sistema.

O nextcloud me atenderia bem, mas estou realmente buscando a solução mais simples possível, apenas um acesso FTP para uma unica pasta e nada mais.

Negue tudo aos usuários em outros nas propriedade dos arquivo da pasta de usuário através do file manager.

Não vai ser acesso por file manager, vai ser acesso FTP mesmo, ou SSH.

FTP por padrão só acessa a pasta do usuário

Se o intuito é apenas disponibilizar para seu irmão um local onde ele possa armazenar arquivos, uma opção seria configurar um servidor de arquivos como o SAMBA.

Eis aqui um guia de como configurar um no Ubuntu:

Para acessar a pasta compartilhada a partir de um computador com o Windows, basta inserir o seguinte na barra de endereços do Windows Explorer:

\\ip-do-servidor

Se for acessar a partir de um desktop Linux, então insira isto na barra do gerenciador de arquivos:

smb://ip-do-servidor

É possível também no Windows utilizar a função “Mapear unidade de rede” para que essa pasta seja montada de forma permanente como se fosse mais uma unidade de disco no computador. Assim não seria necessário toda vez ter que digitar o IP do servidor no Windows explorer. Algo semelhante também pode ser feito em desktops Linux.

1 curtida

Sempre ouvi falar do SAMBA mas nunca fui a fundo.

Vou entender como funciona e ver se ele pode ser uma possível solução.

Obrigado pela dica.

1 curtida

vc disse que “Eu cheguei a testar o nextcloud mas ele fica um pouco pesado no meu raspberry (1gb de RAM só) é uma solução muito completa mas o meu caso é muito simples mesmo, só pra guardar alguns arquivos mesmo em um backup seguro.”

se é tão simples assim, pq ele mesmo não sobe diretamente pra nuvem os arquivos de seu computador? ou salva num pendrive de - por exemplo - 16GB, 32GB?

Na verdade eu mesmo que aconselhei ele a usar o meu servidor.

Não guardo nada pessoal meu em nuvem de terceiros (microsoft, google etc). Tenho todos os meus documentos scaneados como certidões, identidade, CPF, cartões de crédito, contas de água/luz etc etc.

Essas coisas são bastante pessoais e guardo tudo com backup no meu servidorzinho, tenho 2 HDs de backup e tbm sincroniza com meu notebook, ou seja, tenho pelo menos 3 backups de tudo.

Eu gostaria que o povo lá de casa deixasse de ficar dependente dessas bigtechs e usasse o que tenho disponível, mas ao mesmo tempo preciso deixar meu sistema seguro, afinal quanto mais gente usando maior a brecha pra dar algum problema.

Basicamente é isso, e como estou hospedando tudo em um raspberry Pi de 1GB tbm não tenho condições de criar algo bem bonito como um Nextcloud com uma interface bonita e cheio de ferramentas, infelizmente.

Mas segui a dica do amigo @Thiago12, aprendi sobre servidor SAMBA e acho que se encaixou exatamente na minha necessidade. Consegui criar usuários apenas com acesso a determinadas pastas e mais nada, exatamente o que procurava.

2 curtidas

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.