命令 echo "users" | ssh myserv 没有返回任何内容..为什么?

命令 echo "users" | ssh myserv 没有返回任何内容..为什么?

该命令echo "hostname" | ssh myserv返回主机名,但echo "users" | ssh myserv没有返回任何内容?

当我在服务器上 ssh 然后运行命令时users,它会返回我的用户名(因为我已连接到它:-')。

答案1

users仅显示已登录到终端的用户(如 中记录的utmp)。echo users | ssh myserv不创建终端(它不是交互式会话),因此未列出该会话。更常见的类似ssh myserv users方式是在不创建终端的情况下执行命令。另一方面,ssh -t myserv users-t强制创建终端的位置)应该会显示给您。

还可以将ssh -t myserv 'tty; who'(显示您已登录该 tty) 与ssh myserv 'tty; who'( not a tty) 进行比较。

答案2

尝试以下方法:

ssh myserv users

答案3

当我尝试这样做时,我收到错误。有些程序需要 tty。另外请记住,who 和 users 是特殊情况,它们专门查看登录会话。

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

看:

sshd_config 命令

使用登录指定是否将 login(1) 用于交互式登录会话。默认值为“no”。 请注意,login(1)永远不会用于远程命令执行

男性用户

用户-打印用户的用户名当前登录

相关内容