Eu entendo o conceito de gerenciamento de permissões no Linux chmod
usando o primeiro dígito como o usuário , o segundo como o grupo e o terceiro como outros usuários , conforme descrito nesta resposta em Noções básicas sobre permissões e tipos de arquivo do UNIX .
Digamos que eu tenha um sistema Linux com 5 usuários : admin
, usera
, userb
e userc
. guest
Por padrão, os usuários usera
, userb
e userc
terão permissão de execução em todos os arquivos dentro /usr/bin
de , então esses usuários podem usar a linha de comando do sistema executando os arquivos lá, pois esses arquivos têm permissão 75 5 . Até agora está completamente ok. No entanto, gostaria de proibir o usuário guest
de executar arquivos na pasta /usr/bin
, sei que poderia conseguir isso alterando a permissão de todos os arquivos dentro desta pasta para algo como 750 com chmod
, mas se eu fizer isso vou atrapalhar o permissões dos usuários usera
, userb
e userc
porque eles também serão proibidos de executar arquivos.
No meu computador, todos os arquivos /usr/bin
pertencem ao grupo root
, então eu sei que posso criar um newgroup
, alterar o grupo de todos esses arquivos para ele e adicionar usera
, userb
e . Mas fazer isso soa como muita modificação nas configurações padrão do sistema. Alguém conhece uma maneira mais inteligente de resolver esse problema?userc
newgroup
Como posso proibir um único usuário de usar a linha de comando (ou executar qualquer arquivo em PATH
) sem uma solução supercomplicada que exija a alteração das permissões de muitos arquivos?
Use ACLs para remover as permissões. Nesse caso, você não precisa modificar as permissões de todos os executáveis; apenas remova a permissão de execução de
/usr/bin/
para impedir a passagem desse diretório e, portanto, o acesso de qualquer arquivo dentro.Isso define as permissões de
u
serguest
para apenasr
ead para o diretório/usr/bin
, para que eles possamls
acessar esse diretório, mas não acessem nada dentro.Você também pode remover todas as permissões:
O que você está tentando fazer? Proibir o uso dos comandos padrão do sistema para alguns usuários é apenas um comportamento incivil ao extremo... comandos que podem colocar o sistema em risco estão distantes entre si e foram cuidadosamente verificados quanto à segurança. As permissões nos arquivos devem impedir a maioria das tentativas de travessuras.
rbash
; cuidado, porém,rsh
é um tipo diferente de animal!). Eles prendem o usuário de forma bastante eficaz (mas cuidado, é possível sair!)/bin/true
(verifique o manual do seu sistema para quaisquer recomendações nesta linha, pode haver um programa especial para isso; se/bin/true
for um script de shell , não o use para isso ). Dessa forma, se alguém conseguir fazer login nessa conta, a sessão será encerrada imediatamente.chroot
para eles (novamente, existem maneiras de quebrar), ou use os containers Linux das jails do BSD para confiná-los, e apenas exponha exatamente o que você quer que eles vejam. Mais controle, mas confuso para configurar e manter-se atualizado.