Evitar que um usuário do Linux execute algo não aprovado

0

Para algum usuário 'bob' no Linux é possível restringir o arquivo executável por 'bob' somente para caminhos específicos.

Como exemplo, suponha que o 'bob' tenha o diretório inicial / home / bob

'bob' não deve ser capaz de ler / escrever / executar (zero direitos) qualquer coisa acima de / home / bob ever.

/ bin, / lib, / usr / bin, / usr / lib, / usr / local / bin, / usr / local / lib, etc. são explicitamente dadas configurações apropriadas rx - então 'bob' pode executar coisas de esses caminhos, mas não escreva para eles.

'bob' tem direitos rwx ao próprio diretório (/ home / bob) mas é possível não permitir que bob execute coisas de seu próprio diretório por padrão e então permitir que algumas coisas (ativadores, scripts, etc. seletivamente) sejam executáveis por 'bob'

por favor note - 'bob' pode compilar coisas próprias em / home / bob e executar essas coisas (isso deve ser evitado). Também 'bob' sempre pode usar chmod, chgrp, etc. em arquivos de sua propriedade. O que é necessário é a prevenção de execução - mesmo em arquivos próprios.

    
por no.names.please 31.07.2014 / 10:57

1 resposta

2

Coloque diretórios pessoais em um sistema de arquivos noexec . Isso ajudará a impedir que o usuário execute binários armazenados lá, embora não seja uma garantia de 100%.

Coloque qualquer outro local gravável pelo usuário, como / tmp, também em sistemas de arquivos noexec.

Coloque qualquer coisa que você queira que os usuários possam executar, por exemplo / usr / local, de propriedade root e com as permissões apropriadas.

Observe que isso não impedirá que analisadores analisem e executem código armazenado no diretório pessoal do bob. Por exemplo, um script Perl pode ter seu bit de execução configurado e ser executado como ./myscript.pl ou pode ser executado como perl ./myscript.pl , caso em que somente será lido como entrada para o interpretador Perl.

Se você quiser garantias melhores do que isso, considere o aumento usando jail chroot, SELinux ou possivelmente até mesmo removendo completamente o acesso ao shell do bob. Se ele só pode usar sua conta como armazenamento de arquivos glorificado, ele realmente precisa de acesso ao shell? Pode, por exemplo, restringir usuários não confiáveis ao acesso sftp, SMB / CIFS / NFS ou WebDAV funcionar melhor no seu caso de uso?

    
por 31.07.2014 / 11:10