介绍
在 FreeBSD 上,与其他类 Unix 操作系统一样,可以创建用户帐户以提供对系统的交互式访问。 如果管理得当,用户帐户可以通过提供一种方法来限制单个用户仅访问其完成任务所需的文件和目录,从而增加一层系统安全性。
在本教程中,我们将向您展示如何在 FreeBSD 服务器上执行以下用户管理任务:
- 添加用户
- 授予超级用户权限
- 删除用户
- 锁定用户帐户
- 解锁用户帐户
先决条件
要学习本教程,您必须拥有对 FreeBSD 服务器的 root 访问权限。 也就是说,您必须能够通过 sudo
命令以 root 或其他具有超级用户权限的用户身份登录服务器。 如果您计划使用 root,您可以省略示例命令的 sudo
部分。
如何添加用户
添加新用户的最简单方法是使用提供的 adduser
实用程序,它基于 pw
命令。 adduser
命令通过对 passwd
、master.passwd
和 group
文件进行必要的添加,并创建新的用户主目录来将用户添加到系统. 它可以以交互方式运行,提示收集有关新用户的信息,也可以以非交互方式运行,这更适合批量添加用户。 我们将介绍在交互模式下使用它。
要在 交互模式 中添加具有 adduser
的用户,允许您一次创建一个用户,只需运行不带参数的命令,如下所示:
sudo adduser
此时,您必须通过响应一系列提示来提供有关新用户的信息。 现在让我们看一个提示示例,示例响应以红色显示:
Username: sammy Full name: Sammy Shark Uid (Leave empty for default): Login group [sammy]: Login group is sammy. Invite sammy into other groups? []: wheel Login class [default]: Shell (sh csh tcsh nologin) [sh]: Home directory [/home/sammy]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: password Enter password again: password Lock out the account after creation? [no]:
许多提示可以留空以选择默认响应——方括号,例如 [yes]
,表示默认值——但我们将在此处解释几个重要提示:
- 用户名:这个是不言自明的。 提供所需的新用户名称
- 登录组是 . 邀请进入其他组? :此字段允许您通过在以空格分隔的列表中提供所需组来将用户添加到其他组。 最常见的用法是通过将新用户添加到
wheel
组来授予超级用户 (sudo) 权限——在 FreeBSD 上,wheel
组的成员可以使用超级用户权限执行命令. 如果你想创建一个普通(非特权)用户,你可以留空
到目前为止,所有其他提示都是不言自明的,除了密码提示之外,可以将其保留为默认值。 当然,如果您需要更改任何其他详细信息,例如用户的 Uid 或主目录,请随时提供非默认响应。 如果您正在寻找任何提示的深入描述,请运行 man adduser
以获取更多信息。
回答提示后,将显示新用户的摘要:
Username : sammy Password : ***** Full Name : Sammy Shark Uid : 1002 Class : Groups : sammy wheel Home : /home/sammy Home Mode : Shell : /bin/sh Locked : no OK? (yes/no): yes
查看用户信息后,使用 yes
或 no
响应 OK? 提示。 您的响应确定用户是否已创建。
如果您响应 yes
,将创建用户并提供确认:
adduser: INFO: Successfully added (sammy) to the user database.
无论您是否创建用户,您都会看到以下提示:
Add another user? (yes/no): no Goodbye!
如果您完成了,请用 no
响应。 否则,以 yes
响应并重复该过程以创建额外的新用户。
此时,您创建的用户就可以使用了。 您可能希望设置 SSH 密钥身份验证以提高安全性 - 查看本教程以了解如何。
如何授予 Sudo 权限
在 FreeBSD 上,与其他类 Unix 操作系统一样,您可以通过 sudo
命令授予用户以 superuser 权限运行命令的能力。 sudo
命令允许用户以其他用户身份运行命令。 我们将向您展示如何授予普通用户超级用户权限,有效地允许他们以 root
的形式执行命令。
在 FreeBSD 上,属于 wheel
组的用户可以使用 sudo
。 这是由于默认 sudoers 文件 /usr/local/etc/sudoers
中的以下行:
%wheel ALL=(ALL) NOPASSWD: ALL
因此,授予普通用户超级用户权限的一种方法是将用户添加到 wheel
组。 要将用户添加到 wheel
组,请使用此 pw groupmod
命令(替换突出显示的用户名):
sudo pw groupmod wheel -m sammy
此命令将指定用户添加到 /etc/group
文件中的 wheel
组,从而授予用户以超级用户身份运行命令的能力。
如何删除用户
从 FreeBSD 系统中删除用户的一种简单方法是使用 rmuser
命令。 您可以不带参数运行它,或者将要删除的用户作为参数传递,然后按照提示完成用户删除过程:
sudo rmuser
如果您不提供用户名作为参数,系统将提示您输入一个或多个。 然后您将被要求确认您是否确定以及是否应该删除用户的主目录:
Please enter one or more usernames: sammy Matching password entry: sammy:*:1002:1002::0:0:Sammy Shark:/home/sammy:/bin/sh Is this the entry you wish to remove? y Remove user's home directory (/home/sammy)? y Removing user (sammy): mailspool home passwd.
如何锁定用户帐户
如果您想禁用用户对系统的访问但不删除他们的帐户记录和主目录,您可以锁定该帐户。 禁用用户的最简单方法是使用 pw lock
命令,将要禁用的用户作为参数,如下所示:
sudo pw lock username
此命令通过在 /etc/master.passwd
文件中的用户条目前添加“*LOCKED*”来工作。
在帐户解锁之前,用户将无法登录。
如何解锁用户
如果要启用被 pw lock
禁用的用户,可以使用 pw unlock
命令来执行此操作:
sudo pw unlock username
此命令通过从 /etc/master.passwd
文件中的用户条目中删除“*LOCKED*”(如果存在)来工作。
结论
您现在应该对 FreeBSD 服务器上的基本用户管理有了很好的了解。