4. 登录时会发生什么?

当您登录时,您向计算机表明您的身份。在现代 Unix 系统中,您通常会通过图形显示管理器来完成此操作。但是也可以通过 Ctrl-Shift 组合键切换虚拟控制台,并进行文本登录。在这种情况下,您需要通过监视该控制台的 getty 实例来调用 login 程序。

您使用登录名和密码向显示管理器或 login 程序表明您的身份。该登录名会在名为 /etc/passwd 的文件中查找,该文件是一系列行,每一行描述一个用户账户。

这些字段之一是账户密码的加密版本(有时加密字段实际上保存在权限更严格的第二个 /etc/shadow 文件中;这使得密码破解更加困难)。您输入的账户密码会以完全相同的方式加密,login 程序会检查它们是否匹配。这种方法的安全性取决于这样一个事实:从您的明文密码到加密版本很容易,但反过来却非常困难。因此,即使有人可以看到您的密码的加密版本,他们也无法使用您的账户。(这也意味着如果您忘记了密码,则无法恢复它,只能将其更改为您选择的其他内容。)

成功登录后,您将获得与您正在使用的个人账户关联的所有权限。您也可能被识别为一个的成员。组是由系统管理员设置的,命名的用户集合。组可以独立于其成员的权限而拥有权限。一个用户可以是多个组的成员。(有关 Unix 权限如何工作的详细信息,请参阅下面关于权限的部分。)

(请注意,尽管您通常会通过名称来引用用户和组,但它们实际上在内部存储为数字 ID。密码文件将您的账户名映射到用户 ID;/etc/group文件将组名映射到数字组 ID。处理账户和组的命令会自动进行转换。)

您的账户条目还包含您的主目录,这是 Unix 文件系统中您的个人文件存放的位置。最后,您的账户条目还设置了您的 shell,即 login 将启动以接受您的命令的命令解释器。

成功登录后会发生什么取决于您的登录方式。在文本控制台上,login 将启动一个 shell,您就可以开始运行命令了。如果您通过显示管理器登录,X 服务器将启动您的图形桌面,您将能够从中运行程序——可以通过菜单、桌面图标或运行shell终端模拟器