| login干了些什么
login 程序负责认证用户(确认用户名和口令相配),并建立串行线,启动shell,建立用户的初始环境。
部分初始化设置是输出文件/etc/motd (每天的短信息)的内容,并检查电子邮件。可以在用户家目录中产生一个叫.hushlogin
的文件来是上面所述的失效。
如果存在文件/etc/nologin ,就不允许登录。这个文件一般由shutdown
及其相关的东西产生。 login 检查这个文件,如果这个文件存在,就拒绝接受登录。如果这个文件确实存在,login
就会在退出之前,将它的内容输出到终端。
login 将所有失败的登录企图登记在系统log文件中 (通过syslog )。它也登记所有的root的登录。这些都对跟踪入侵者有用。
当前登录着的用户列在/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
允许用户通过覆盖按照自己的口味客户化环境,如果必要,使用确省环境。
|