Execute o daemon de shell remoto como usuário não raiz com conclusão de tabulação

2

Eu preciso executar qualquer "daemon de shell remoto" (ssh, telnet, netcat, socat ... não me importo) como usuário não-root . O shell remoto deve fornecer tab-completion e eu quero ser capaz de navegar pelo histórico usando as setas .

No momento, estou usando uma solução baseada em netcat, mas eu perco a conclusão da guia e não consigo navegar pelo histórico usando as setas

No lado do servidor:

# Run the "remote shell daemon"
$ mkfifo fifo
$ nc -l 2000 <fifo | /bin/bash &> fifo
$ rm fifo

No lado do cliente:

# Connect to the remote shell
$ nc $REMOTE_ADDR 2000

Adicionar o argumento -i ou -l ao bash não ajuda.

    
por Xion345 18.04.2013 / 14:23

2 respostas

3

socat (1) poderia ser de alguma ajuda.

De link :

// poor mans 'telnetd' replacement
# socat tcp-l:2023,reuseaddr,fork exec:/bin/login,pty,setsid,setpgid,stderr,ctty
// and here an appropriate client:
$ socat -,raw,echo=0 tcp:172.16.181.130:2023

Aqui, o exemplo usa "login", que obviamente requer um acesso root, mas eu testei com sucesso com / bin / zsh. Isto implica que a segurança não é um problema ... Caso contrário, como se diz na página onde encontrei esta dica, você poderia usar uma autenticação de cliente com SSL para garantir que somente você possa efetuar login.

    
por 20.04.2013 / 04:23
1

Conclusão de tabulação com o netcat:

- stty   : change and print terminal line settings  
- echo   : echo input characters  
- icanon : enable erase, kill, werase, and rprnt special characters
- sane   : Revert back default terminal line setting

Comando:

bash-4.3# stty -echo -icanon && nc ... && stty sane

Exemplo:

stty -echo -icanon && nc 0 5000 && stty sane Note : 5000 is the port number

Para mais informações, você pode consultar a página man do linux:

Linux man Page - stty

Página man do Linux - netcat

    
por 12.05.2017 / 15:35

Tags