Oferecer ou pressionar menu para usuários ssh

2

Eu quero apresentar qualquer usuário que efetue login na minha unidade Debian através do menu ssh automaticamente. Atualmente eles devem efetuar login e executar o script menu.sh manualmente na linha de comando. Isso pode ser feito?

    
por user72055 18.12.2015 / 16:05

2 respostas

8

Você pode editar /etc/profile (todo o sistema) ou ~user/.profile (por usuário, todos os bourne shells) ou ~user/.bash_profile (por usuário, específico do bash) ou um script semelhante para chamar o menu. / p>

Se você apenas quiser mostrá-lo aos usuários que fizerem login através do SSH, verifique se a variável de ambiente SSH_CLIENT foi definida:

if [ ! -z "$SSH_CLIENT" ]; then
    menu.sh
fi

caso contrário, ele será usado para todos os login. Além disso, você deve não colocar isso em um arquivo .bashrc ; a diferença entre .bashrc de um lado e .profile ou .bash_profile é que o primeiro é executado para o shell every que é iniciado, enquanto o último é iniciado apenas para login shells.

    
por 18.12.2015 / 16:10
3

Esta é uma alternativa à resposta da @Wouter.

A maioria das caixas * nix tem um arquivo onde os dados do usuário são armazenados, como "/ etc / passwd". Este arquivo armazena várias informações relativas à conta do usuário, uma delas é o "shell" que será executado se o usuário enviar corretamente o login / senha. O exemplo a seguir mostra quando o usuário faz o login no sistema, o bash será executado:

slave:x:0:0:Linux Slave User,,,:/home/user:/bin/bash

Desta forma, você pode alterar a última parte para o que você deseja executar.

Então, qual é a diferença das respostas anteriores? - Na maioria das caixas Linux, essa resposta é mais segura que a anterior.

Esse método executará diretamente o programa / script desejado e - se o script ou o programa quebrar (um bug, por exemplo), o usuário será imediatamente desconectado - porque o usuário está conectado a esse processo.

A resposta anterior irá anexar o usuário ao bash (ou outro shell), se o script em execução estiver concluído, o usuário irá diretamente para o prompt do bash e poderá executar qualquer comando no Linux.

Em outras palavras, se você estiver executando um menu que deveria ser o único método que deseja que os usuários interajam com seu Linux, certifique-se de que seu menu nunca termine ou quebre. Se houver uma chance de ter um bug no seu menu, use a opção desta resposta.

Você não precisa editar manualmente /etc/password, usando o seguinte comando (como superusuário):

chsh -s "your program" "login"

    
por 18.12.2015 / 18:30

Tags