10.5. 访问控制

用户数据库传统上包含在/etc/passwd文件中。有些系统使用影子密码,并将密码移动到/etc/shadow。 拥有多个共享帐户的计算机的站点使用 NIS 或其他方法来存储用户数据库;他们也可能自动地将数据库从一个中央位置复制到所有其他计算机。

用户数据库不仅包含密码,还包含关于用户的其他信息,例如他们的真实姓名、主目录和登录 Shell。这些其他信息需要是公开的,以便任何人都可以读取它。因此,密码被加密存储。这确实有一个缺点,即任何有权访问加密密码的人都可以使用各种加密方法来猜测它,而无需尝试实际登录计算机。影子密码试图通过将密码移动到另一个只有 root 才能读取的文件(密码仍然是加密存储的)来避免这种情况。但是,将影子密码安装到不支持它们的系统上可能很困难。

无论是否使用密码,重要的是要确保系统中的所有密码都是好的,即不容易被猜到。可以使用 crack 程序来破解密码;它能找到的任何密码都表明它不是一个好密码。虽然 crack 可以被入侵者运行,但系统管理员也可以运行它来避免使用弱密码。passwd 程序也可以强制使用好密码;事实上,这在 CPU 周期方面更有效,因为破解密码需要大量的计算。

用户组数据库保存在/etc/group中;对于使用影子密码的系统,可能存在一个/etc/shadow.group.

root 用户通常不能通过大多数终端或网络登录,只能通过在/etc/securetty文件中列出的终端登录。这使得必须获得对这些终端之一的物理访问权限。但是,可以作为任何其他用户通过任何终端登录,并使用 su 命令成为 root 用户。