3.3.用户和基本账户管理
FreeBSD 允许多用户同时使用计算机。虽然在任何时候都只有一个用户可以 坐在屏幕前使用键盘,但任意数量的用户都可以通过网络登录到系统。每个为了使用该系统的用户都应该有自己的用户账户。
本章介绍了:
- FreeBSD 系统中不同类型的用户账户。
- 如何添加、删除和修改用户账户。
- 如何设置限制来控制允许用户和组访问的资源。
- 如何创建组并将用户添加为组的成员。
由于对 FreeBSD 系统的所有访问都是通过帐户实现的,而且所有进程都是由用户运行的,因此用户和帐户的管理非常重要。
主要有三种类型的账户:系统账户、用户账户和超级用户账户。
系统账户用于运行服务,如 DNS、邮件和网络服务器。这样做的原因是安全问题;如果所有的服务都以超级用户的身份运行,它们就可以不受限制地行动。
系统账户例如
daemon
、operator
、bind
、news
、www
。nobody
是通用的无特权系统账户。然而,使用 nobody
的服务越多,该用户将与更多的文件和进程相关联,因此该用户的特权也就越大。用户账户被分配给真实的人,用来登录和使用系统。每个访问系统的人都应该有一个独特的用户账户。这使管理员能够发现谁在做什么,并防止用户篡改其他用户的设置。
每个用户都可以通过配置 默认的 shell、编辑器、组合键和语言设置来设置自己的环境,以适应他们对系统的使用。
在 FreeBSD 系统上的每个用户账户都有一些相关的信息。
User name
用户名称是在
login:
提示符下输入的。每个用户都必须有一个唯一的用户名。在 passwd(5) 中记录了一些创建有效用户名的规则。建议使用由八个或更少的小写字母组成的用户名,以保持与应用程序的向后兼容性。Password
每个账户都有一个对应的密码。
User ID (UID)
用户 ID(UID)是一组数字,用于在 FreeBSD 系统中唯一地识别用户。当命令使用到了用户名时,会先将其转换为 UID。建议使用小于 65535 的 UID,因为过高的值可能会引起某些软件的兼容性问题。
Group ID (GID)
组 ID(GID)是一组数字,用于唯一地识别用户所属的主要组。组是根据用户的 GID 而不是 UID 来控制对资源的访问一种机制。这可以大大减少一些配置文件的大小,并允许用户成为多个组的成员。建议使用 65535 或更小的 GID,因为过高的 GID 可能会引起某些软件的兼容性问题。
Login class
Password change time
默认情况下,密码是不会过期的。然而,可以在每个用户的基础上启用密码过期,迫使部分或所有用户在一定时间后改变他们的密码。
Account expiration time
默认情况下,FreeBSD 不对账户进行过期保护。当创建需要有限寿命的账户时,例如学校的学生账户,可以使用 pw(8) 指定账户的过期时间。在过期时间过后,就不能用这个账户来登录系统了,不过会保留这个 账户的目录和文件。
User’s full name
用户名称对 FreeBSD 来说是账户的唯一标识,但不一定反映用户的真实姓名。与注释类似,这一信息可以包含空格、大写字母,并且长度可超过 8 个字符。
Home directory
主目录是系统中某个目录的完整路径。当用户登录时,这是用户的起始目录。一个常见的惯例是把所有用户的主目录放在
/home/username
或 /usr/home/username
下。每个用户都把他们的个人文件和子目录存放在自己的主目录下。User shell
shell 为用户提供了与系统交互的默认环境。有许多不同种类的 shell,有经验的用户会有自己的偏好,这反映在他们的帐户设置中。
超级用户,通常称为
root
,用于管理系统,没有权限限制。由于这个原因,它不应该被用于日常工作,如发送和接收邮件,以及对系统的一般探索或编程。超级用户与普通用户不同,可以不受限制地操作,滥用超级用户可能导致巨大的灾难。普通用户因为权限不足而无法因人为失误而破坏操作系统。因此建议以普通用户登录,只有在命令需要额外权限时才成为超级用户。
对于以超级用户身份发布的任何命令,一定要进行双重和三重检查,因为一个额外的空格或缺失的字符可能意味着不可修复的数据损失。
有几种方法可以获得超级用户的权限。虽然人们可以直接以
root
身份登录,但这是非常不可取的。