“cat / tmp / dir /:0”命令有什么作用?

时间:2009-04-16 13:31:52

标签: security bash x11

当我执行上述命令时,X11打开了。我很困惑。我跑了吗?我怎么能确定在看东西时我没有运行任何程序?我真的很讨厌读取文本文件可能会执行程序的想法。如何编程在运行简单的cat-command或类似命令时执行的程序?

4 个答案:

答案 0 :(得分:3)

如果你跑

file /tmp/:0

你应该看到这不是一个普通的'text'文件而是一个socket。别名ls因此

ls -F

将有助于在shell中自动识别此类文件。

答案 1 :(得分:3)

这听起来像OSX 10.5的行为。

launchd侦听套接字'/ tmp / launch-xxxxxx /:0'。 DISPLAY变量设置为告诉X应用程序写入该套接字。当X应用程序打开套接字时,launchd会自动启动'X11.app',为应用程序提供显示。

cat'ing套接字打开它并触发X11.app。我不认为默认情况下配置了该行为的任何其他实例。

答案 2 :(得分:2)

机器:0是X显示器('机器'上的第一个显示器)
我从未见过/ tmp /:0但是可能是您的机器已配置为所有不匹配的机器名称映射到localhost。 你还没有执行任何操作,X服务器只会尝试将cat发送的任何命令解释为X指令。这就像把猫带到一个http地址

答案 3 :(得分:2)

:0是一个引用X服务器的套接字。程序使用此套接字与X服务器通信(例如绘制窗口)。从这个套接字读取不知何故导致服务器激活。在执行此命令之前,X服务器必须已经运行。