![当输出显示在另一个终端中时,为什么不询问密码](https://linux22.com/image/210759/%E5%BD%93%E8%BE%93%E5%87%BA%E6%98%BE%E7%A4%BA%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%97%B6%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E8%AF%A2%E9%97%AE%E5%AF%86%E7%A0%81.png)
当我使用时:
date > /dev/tty3
输出被传送到第一个 cli 终端。
但我的问题是为什么终端不要求输入密码。我们使用终端进行输出,命令被传递到终端,那么如何在不询问密码的情况下向我们显示输出。
答案1
因为您已经可以访问该终端,因为它属于您的用户。例如:
$ tty
/dev/pts/10
$ ls -l /dev/pts/10
crw--w---- 1 terdon tty 136, 10 Sep 16 2022 /dev/pts/10
所以我拥有这个。我现在打开一个新终端并运行:
$ date > /dev/pts/10
而且,正如预期的那样,它出现在我的第一个终端窗口中。现在,如果我像root
使用一样打开终端sudo xterm
,我会看到以下内容:
[root@oregano terdon]# tty
/dev/pts/12
如果我尝试以普通用户身份写入该终端,我会得到:
$ ls -l /dev/pts/12
crw--w---- 1 root tty 136, 12 Sep 16 14:06 /dev/pts/12
$ date > /dev/pts/12
bash: /dev/pts/12: Permission denied
因此,没有密码请求,但您只能写入您有写入权限的终端。