O comando echo “users” | ssh myserv não retorna nada .. Por quê?

1

O comando echo "hostname" | ssh myserv retorna o nome do host, mas echo "users" | ssh myserv não retorna nada?

Quando eu ssh no servidor, em seguida, execute o comando users , ele retorna meu nome de usuário (desde que eu esteja conectado nele: - ').

    
por tuxer 22.03.2011 / 01:00

3 respostas

4

users mostra apenas os usuários que estão conectados a um terminal (conforme registrado em utmp ). echo users | ssh myserv não cria um terminal (não é uma sessão interativa), então essa sessão não está listada. O mais comum ssh myserv users similarmente executa o comando sem criar um terminal. Por outro lado, ssh -t myserv users (onde -t força um terminal a ser criado) deve mostrar a você.

Compare também ssh -t myserv 'tty; who' (mostra o seu login nesse tty) com ssh myserv 'tty; who' ( not a tty ).

    
por 22.03.2011 / 01:19
1

Tente assim:

ssh myserv users
    
por 22.03.2011 / 01:08
1

Eu recebo um erro quando tento isso. Alguns programas exigem um tty. Também tenha em mente que quem e os usuários são um caso especial, eles estão olhando especificamente para sessões de login.

# echo users | ssh host
stdin: is not a tty

Veja:

man sshd_config

UseLogin Specifies whether login(1) is used for interactive login sessions. The default is “no”. Note that login(1) is never used for remote command execution.

usuários man

users - print the user names of users currently logged in

    
por 22.03.2011 / 01:09

Tags