打开终端时不需要登录?


1

谈到Linux,尤其是Ubuntu(14.04版)系统:

情况1-如该答案所指出,分配伪终端的进程不需要进行登录:例如,cups。无论如何,它们who命令输出中列出。

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

所以,

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

2)如何通过GUI中的唯一登录来“解锁”由终端仿真器打开的伪终端的所有登录?如果我/dev/tty1通过打开这是无效的CtrlAltF1


较新的gnome-terminal版本不再更新utmp记录,并且终端也不再显示在who的输出中,请参阅bugzilla.gnome.org/show_bug.cgi?id=747046
egmont

您能否阐明您的第一个问题:基本上,您是在问用户和流程之间有什么区别。用户是用户,过程是过程,这是两个完全不同的概念。您是否真的要求对此进一步澄清?
egmont

@egmont我试图澄清这个问题。
BowPark '16

Answers:


1

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

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

这是一个古老的用户级概念,即存在一个utmp / wtmp数据库来跟踪登录。图形登录管理器将记录更新为整个图形登录记录(或多或少有意义),并且终端仿真器会自愿更新(或不更新)属于给定终端行的记录(我认为这在https中有详细介绍)://bugzilla.gnome.org/show_bug.cgi?id = 747046,完全没有任何意义)。这源于终端是真正的终端而不是图形仿真器的时代,请确保跟踪从何处登录的人是有意义的。

在我看来,过时的坏习惯是说打开图形终端仿真器意味着“登录”,或者应该为打开的终端窗口/选项卡创建日志条目,who并且类似的实用程序应该报告此情况。

诸如此类的实用程序会who根据这些或多或少正确维护的utmp / wtmp文件来打印信息,而这些文件的可用性和可靠性仍然非常有限。


谢谢您的回答(建议您将它们合并为一个唯一的答案)。您对我的第一个问题非常清楚。我可能理解,您真正需要记录的唯一操作是GUI登录。我也了解一个进程可以打开一个终端:但是在GUI的情况下,还有更多。一个进程正在打开终端,并自动在该终端中登录用户;这是我的第二个问题。它怎么可能?为什么只能通过GUI来实现呢?
BowPark '16

那就是:如果我从GUI单击终端图标,则会得到一个终端,并且我的用户已经登录。如果我在/dev/tty1(例如)运行脚本来创建新的Shell,则必须输入密码,因此进行新的登录。 。
BowPark '16

1
/dev/tty1getty以root用户身份运行的进程打开/创建。它要求您提供用户名和密码,并在成功验证后将所有权更改为您,登录到utmp / wtmp / lastlog,并在该终端内启动外壳。在图形系统上,您可以在托管显示(gdm,kdm,lightdm等)中执行登录(身份验证),然后启动的任何应用程序都会自动代表您运行。这个应用程序可以是例如打开数百个网络连接的Firefox,或者打开图片的gimp,或者是在其每个选项卡中打开终端的gnome-terminal。
egmont

1

基于澄清,我很确定你使用的话userprocess不正确。在我看来,您认为某事物要么是用户,要么是过程(恰好是其中之一)。绝对不是这样。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.