Proibir qualquer interação com o sistema para o usuário

0

Estou procurando uma maneira de isolar completamente o usuário do sistema e permitir que o usuário faça o login no sistema e interaja com programas abertos.

Uma maneira de conseguir isso é removendo todas as permissões para cada pasta e / ou arquivo individual.

O meu objetivo é ter o login do usuário no meu sistema e dar ao usuário acesso a apenas um executável Java, que o usuário pode iniciar e interagir.

Existe alguma maneira melhor de fazer isso?

Obrigado

    
por Deandre Thomson 17.06.2018 / 10:19

1 resposta

4

Você provavelmente desejará configurar o shell padrão desses usuários como /bin/rbash - restricted bash ( bash -r ). Veja man rbash . Isso pode ser feito com o comando chsh -s /bin/rbash {USER} .

Para evitar que eles executem outros comandos além daquele que você deseja, defina o ambiente variável PATH como apenas a pasta que contém o executável que você deseja que eles executem em ~/.bash_profile :

export PATH="$HOME/bin"

Editar:

Neste ponto, ainda é possível que um invasor escape do rbash. Na verdade, ssh permite executar comandos remotos. Eles ainda podem fazer algo como ssh ... cp /bin/bash bin , para adicionar o bash ao conjunto de comandos que podem ser executados. O problema é que quando executado diretamente do ssh, parece que o bash (ou rbash) não lê .bash_profile , nem .profile , nem /etc/profile .

O link (2) propõe soluções para este problema. man sshd_config descreve todas as opções que podem ser definidas em /etc/ssh/sshd_config . Aparentemente, o script ~/.ssh/rc (assim como /etc/sshrc ver link (4)) é executado quando precisamos que ele seja - sempre que um usuário ssh algum comando. Mas eu não testei.

Neste ponto, pode ou não ainda ser possível quebrar o rbash usando scp .

Além disso, você precisará desativar o SFTP em /etc/ssh/sshd_config . Isso é feito comentando a linha:

Subsystem sftp       /usr/lib/openssh/sftp-server

Links:

por 17.06.2018 / 13:44