Não permitir execução no diretório inicial

5

Existe alguma maneira de impedir a execução de arquivos do diretório home no Linux? Minha meta é proteger meu sistema contra scripts maliciosos, etc. Claro, posso remover o bit de execução com chmod para /home/user e todos os seus subdiretórios, mas isso pode ser facilmente alterado, pois user é proprietário de /home/user . Então, penso em ativar a execução a partir de bin , /usr/bin , usr/sbin apenas e não permitir a execução de outros diretórios. Meu sistema é Debian 8.

    
por folibis 23.11.2015 / 00:37

2 respostas

20
  1. se /home for uma partição separada, você poderá montá-la com a opção noexec .

  2. Ao fazer isso, você está destruindo (ou tentando) grande parte da funcionalidade de um sistema unix para seus usuários, uma vez que desativa TODOS os scripts escritos pelo usuário, não apenas os "mal-intencionados". Escrever scripts para realizar tarefas é uma coisa perfeitamente normal para usuários unix.

  3. Ainda não os impede de escrever scripts e executá-los com bash myscript.sh ou perl myscript.pl etc.

  4. Se você não tiver confiança mínima nos usuários, não conceda a eles um shell ou conceda-lhes um shell restrito, como /bin/rbash em vez de /bin/bash .

por 23.11.2015 / 00:43
3

Uma maneira de fazer isso é configurar um shell limitado para o usuário - por exemplo, usando lshell . Veja também shell restrito .

Basicamente você configura lá o shell de login como /usr/bin/lshell ao invés de bash , então você pode configurá-lo via /etc/lshell.conf para cada usuário para permitir que apenas algumas coisas sejam executadas.

No entanto, isso pode quebrar a maioria dos programas disponíveis para um usuário sem configuração estendida - também alguns programas podem ser feitos para executar comandos personalizados que provavelmente poderiam ser usados para sair do shell limitado.

Portanto, se você tiver as permissões corretas definidas no sistema (e não sudo access, veja também o que polkit permite), elas poderão usar o shell de login padrão sem afetar o restante do sistema.

N.B. Outro método que eu sei onde usuários não confiáveis têm acesso a sistemas é reimaginar todo o sistema todos os dias. Não é muito prático para a maioria dos casos.

    
por 23.11.2015 / 00:55