Executando um script de shell para determinado usuário que efetua login com o SSH

6

Primeira vez aqui e postar só porque não consigo encontrar a resposta para isso, ou se isso é possível.

O problema que estou tendo é que eu quero criar um script que será executado imediatamente após um usuário fazer logon no meu servidor usando o Putty, por exemplo.

Eu não quero que o usuário seja capaz de executar qualquer um dos comandos normais que você possa executar, em vez disso, eu quero criar um script que responda a um determinado conjunto de comandos predefinidos, por exemplo,

> Hello

Hello, username goes here

Isso é possível? Usar o SSH não é um pré-requisito, qualquer outra conexão do console, o telnet, por exemplo, funcionará bem, eu só quero que um usuário possa se conectar ao meu servidor e obter resposta de alguns comandos básicos.

Obrigado pelo seu tempo, espero ter me explicado com clareza suficiente.

    
por Badger 20.01.2013 / 01:39

3 respostas

4

Você pode realizar esse tipo de comportamento alterando o shell da conta em questão para o script que deseja executar. Nesse caso, o usuário não obtém seu prompt normal, onde inserir comandos normais como ls , cd etc. Em vez disso, seu script é executado no login e você pode ter a funcionalidade que precisa.

Para alterar o shell, você pode usar chsh -command ou alterá-lo diretamente para /etc/passwd . O novo shell (seu script) também deve estar listado em /etc/shells para que isso funcione.

    
por 20.01.2013 / 08:10
4

Acho que o que você está procurando é chamado Comandos forçados :

link

Forced commands can be quite useful. Suppose you want to give your assistant access to your account but only to read your email. You could associate a forced command with your assistant's SSH key to run only your email program and nothing else.

In SSH1 and OpenSSH, a forced command may be specified in authorized_keys with the "command" option preceding the desired key. For example, to run the email program pine whenever your assistant connects:

# SSH1, OpenSSH
command="/usr/local/bin/pine" ...secretary's public key... 

In SSH2, a forced command appears on the line immediately following the desired Key, using the Command keyword. The previous example would be represented:

# SSH2 only
Key secretary.pub
Command "/usr/local/bin/pine"

Isso só permitirá que eles executem um comando, acredito. Se você precisar permitir mais, poderá usar Authprogs . É um script Perl que tem um arquivo .conf , no qual você pode especificar comandos que uma pessoa pode executar.

por 20.01.2013 / 02:34
3
Match user username
    ForceCommand command_which_you_want_to_run

Isso você pode colocar no arquivo sshd_config do seu servidor ssh . Então, quando um usuário chamado username se conectar ao seu servidor via ssh, command_which_you_want_to_run será executado.

Você pode ajustar mais seu ssh server . O link a seguir pode ajudá-lo a fazer isso.

link

    
por 20.01.2013 / 03:23