6 Linux管理员手册--登录和注销( 二 )



当前登录着的用户列在/var/run/utmp 中 。这个文件直到系统下次启动或关机前有效 。系统刚启动时它被清空 。它列出了每个用户和用户使用的终端(或网络连接),及一些有用的信息 。who 、w 及其他类似的命令查看utmp 文件得到都有谁登录着 。

所有成功的登录记录在/var/log/wtmp 中 。这个文件将无限制地增大,所以必须有规律的清除,例如有个每周的cron 任务来清除它 。last 命令浏览wtmp 文件 。

utmp 和wtmp 都是二进制格式 (见utmp 的man页);不幸的是,没有特殊的程序无法查看它们 。

X和xdm

META: X implements logins via xdm; also: xterm -ls

存取控制

用户数据库传统上包含在/etc/passwd 文件中 。有些系统使用影子口令shadow passwords,并把口令移到 /etc/shadow 中 。许多计算机的场所可以用NIS或其他存储用户数据库的方法共享帐户;它们可能也自动从中心位置复制数据库到所有其他计算机 。

用户数据库不仅包含口令,还包括有用户的其他信息,比如其真实姓名、家目录、登录 shell等 。这其他信息需要公用,使所有人都能读 。因此口令是加密保存的 。这有缺点,任何人取得加密的口令,可以用不同的加密方法猜试口令,而不用试着真正登录到计算机 。影子口令试图用把口令移动到其他文件的办法避免这种情况,只有 root能读(口令还是加密保存的) 。However, installing shadow passwords later onto a system that did not support them can be difficult.

不管有没有口令,确认系统中的所有口令是好的是很重要的,即不易猜 。crack 程序可用于破解口令;任何可以精确地找到的口令都不是好的口令 。同时crack 可以为入侵者运行,也可由系统管理员运行以避免坏的口令 。好的口令也可以被passwd 程序强制实现;这样对CPU周期来说很有效,因为破解口令需要许多计算 。

用户组数据库保存在/etc/group 文件中;有影子口令的系统,是/etc/shadow.group。

root通常不能通过更多的终端或网络登录,只能通过列在/etc/securetty 文件中的终端登录 。这使得必须能够物理存取这其中的一个终端 。当然也可能通过任何终端用任何拥护登录,然后使用su 命令变成root 。

Shell启动

当一个交互的登录shell启动时,它自动执行一个或更多预定义的文件 。不同的shell执行不同的文件;更多的信息见每个shell的文档 。

多数shell首先运行一些全局文件,例如,Bourne shell(/bin/sh ) 和它引出执行的/etc/profile ;另外,它们执行用户家目录中的.profile。/etc/profile 允许系统管理员建立一个公用的用户环境,特别是建立PATH,以包括本地命令目录 。另外,.profile 允许用户通过覆盖按照自己的口味客户化环境,如果必要,使用确省环境 。

推荐阅读