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