Aqui está o problema: eu fiz algo com python que funciona com praticamente qualquer sistema operacional, exceto windows, e me disseram que as pessoas que irão avaliar/usar/experimentar só têm windows disponíveis. Todos os emuladores de console disponíveis falharam e não tenho a opção de reescrever o código ou instalar uma máquina virtual nessas máquinas.
O prazo é de 8 horas e é isso que tenho em mente:
Pegue meu servidor, crie um usuário sem senha (com, por exemplo, o nome do aplicativo) que só possa iniciar aquele arquivo ou um alias (que inicie o arquivo) e inicie o servidor ssh.
Então tudo o que eles precisam fazer é entrar na máquina e o programa aparece. É um console somente de texto, então não pode haver problemas com isso.
O problema é que não sei como tornar um usuário Linux TÃO limitado. Como eu posso fazer isso? O servidor é apenas uma máquina de teste, não contém dados importantes e normalmente está desligado ou funcionando offline, portanto a segurança não é um grande problema aqui. Eu só quero fazer isso funcionar. Além disso, a solução não será permanente, só preciso que ela funcione amanhã por cerca de 7 horas e então poderei mexer livremente nela e fazê-la funcionar corretamente.
Editar: por mais que eu aprecie respostas longas e cheias de informações, devo dizer que são 4h30, estou acordado há quase dois dias e estou prestes a desmaiar no teclado. Então, por favor, não adicione nada que não seja essencial, eu não conseguiria processar isso.
Responder1
Você pode permitir logins sem senha por meio de chaves de autorização SSH em execução ssh-keygen
, que geraram uma chave pública e privada. O usuário precisa da chave privada para fazer login e o servidor precisa da chave pública. ~/.ssh/authorized_keys
Você pode obter mais informações em
Como configurar o ssh para que não seja solicitada uma senha
Sobre a restrição, você pode criar um ambiente chroot para esse usuário, que é mais seguro, mas dá muito mais trabalho, ou pode fazer poucas restrições nas chaves autorizadas:
command="/your/script/path/filename",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pry YOUR-SSH-KEY
Você pode obter mais informações sobreGerenciando SSH para scripts e cron jobs
Responder2
Não consegui criar um usuário sem senha, mas criei um com nome de usuário e senha nome do programa e no arquivo /etc/ssh/sshd_config adicionei Match User testuser
e ForceCommand python /path/file.py
dessa forma qualquer um pode fazer login (as informações de login estão no site desse servidor) veja o programa e, em seguida, efetue logout automaticamente quando o programa for fechado.