什么时候打开终端不需要登录?

什么时候打开终端不需要登录?

谈论 Linux,特别是 Ubuntu(从 14.04 开始)系统:

案例 1 - 正如中所指出的这个答案,分配伪终端的进程不需要登录:例如,cups。无论如何他们都是不是在命令输出中列出who

情况 2 - 如果我进行 GUI 登录,可执行文件gnome-terminal(或xfce4-terminal,根据桌面环境)可以打开很多伪终端,与我的用户已经已登录,并且对于每个打开伪终端,who命令输出中将出现新行。

所以,

1)进程和用户都可以打开终端,因此它们必须具有一些共同特征(因为它们可以以类似的方式进行操作)和一些差异。从系统外壳,用户(在打开终端时显然需要登录并且在who命令中列出)和进程(不需要登录使用终端并且在who命令中未列出)之间有什么区别?我的疑问是,一个进程可以在需要时打开终端,而无需系统进行任何检查,而用户必须始终进行登录。

2) 怎样才能独特的GUI 中的登录“解锁”终端模拟器打开的伪终端的所有登录?如果我/dev/tty1通过打开,这无效CtrlAltF1

答案1

进程是可执行二进制文件的运行实例。每个进程,类似于每个文件等,都属于某个用户。 (这有点复杂,因为一个进程有不同的用户 ID,但大多数时候它们是相同的。)

终端线 (tty) 可以由任何进程随时打开,就像进程可以打开/创建文件、TCP 套接字等一样。在这方面,终端没有什么特别的。

这是一个古老的用户级概念,存在一个 utmp/wtmp 数据库来跟踪登录。图形登录管理器更新属于整个图形登录的记录(或多或少有意义),终端仿真器自愿更新(或不更新)属于给定终端行的记录(在我看来,这在https://bugzilla.gnome.org/show_bug.cgi?id=747046,没有任何意义)。这来自于终端是真正的终端而不是图形模拟器的时代,当然跟踪谁从哪里登录是有意义的。

在我看来,打开图形终端模拟器意味着“登录”,或者应该为打开的终端窗口/选项卡创建日志条目并且who类似的实用程序应该报告这一点,这是一种过时的坏传统。

实用程序例如who根据这些或多或少正确维护的 utmp/wtmp 文件打印信息,这同样具有相当有限的可用性和可靠性。

答案2

根据澄清,我很确定您错误地使用了user“and”一词process。在我看来,你相信某个东西要么是用户,要么是进程(恰好是其中之一)。事实绝对不是这样的。

可执行程序代码的每个运行实例(无论它是“自动”启动(例如作为引导过程的一部分)还是通过用户交互(例如用鼠标单击)启动)都称为process.每个进程都有一个user与之关联的进程(对于引导进程,这些进程通常是称为 的超级用户root)。

相关内容