Forçar Comando

Forçar Comando

Isso é algo que pesquisei há algum tempo e encontrei algumas informações úteis... mas agora que realmente preciso fazer isso, é claro que não consigo mais encontrar aquele guia que vi.

De qualquer forma, aqui está a situação. Eu tenho um programa que roda usando um menu ncurses através de SSH. Quero que os usuários possam fazer login nesse programa via SSH, mas apenas nesse programa.

O que devo fazer para que esse cenário seja possível?

  • O usuário abre o Putty
  • O usuário entra no servidor Linux com seu nome de usuário e senha
  • Ao fazer login, eles vão direto para esse programa
  • No caso de um programa fechar, travar, cancelar, etc... o usuário é desconectado à força do sistema.

Meu objetivo é impedir que eles vejam uma linha de comando e ficar restritos apenas a esse programa. Isso é possível? Como eu/faria para fazer isso?

Responder1

Isso também é chamado de login cativo.

Anexe ao ~/.profile do usuário uma execução do programa e uma saída.

exec /usr/local/bin/program
exit

Usuários inteligentes sabem que podem fornecer um comando em seu cliente ssh que não seja o shell que você espera. Evite isso com ForceCommand na sua configuração sshd:

Forçar Comando

Força a execução do comando especificado por ForceCommand, ignorando qualquer comando fornecido pelo cliente e ~/.ssh/rc se presente. O comando é invocado usando o shell de login do usuário com a opção -c. Isso se aplica à execução de shell, comando ou subsistema. É mais útil dentro de um bloco Match.

Match Group programusers
    ForceCommand /usr/local/bin/program

informação relacionada