FreeBSD 中文手册
FreeBSD 中文社区
  • FreeBSD 中文手册
  • 编辑日志
  • 译者说明
  • FreeBSD 中文手册
  • 目录
  • 概述
  • 前言
    • 致读者
    • 第四版
    • 第三版
    • 第二版(2004)
    • 第一版(2001)
    • 本书的组织结构
    • 本书中使用的一些约定
    • 致谢
  • 第一部分:快速开始
  • 第1章 简介
    • 1.1.概述
    • 1.2.欢迎来到 FreeBSD!
    • 1.3.关于 FreeBSD 项目
  • 第2章 安装 FreeBSD
    • 2.1.概述
    • 2.2.最低硬件要求
    • 2.3.安装前的准备工作
    • 2.4.开始安装
    • 2.5.使用 bsdinstall
    • 2.6.分配磁盘空间
    • 2.7.获取安装文件
    • 2.8.账户、时区、服务和安全
    • 2.9.故障排除
    • 2.10.使用 Live CD
  • 第3章 FreeBSD 基础
    • 3.1.概述
    • 3.2.虚拟控制台和终端
    • 3.3.用户和基本账户管理
    • 3.4.权限
    • 3.5.目录结构
    • 3.6.磁盘结构
    • 3.7.文件系统的挂载与卸载
    • 3.8.进程和守护进程
    • 3.9.Shell
    • 3.10.文本编辑器
    • 3.11.设备和设备节点
    • 3.12.手册页
  • 第4章 安装应用程序:软件包和 Ports
    • 4.1.概述
    • 4.2.软件安装的概述
    • 4.3.寻找所需的应用程序
    • 4.4.使用 pkg 管理二进制包
    • 4.5.使用 Ports
    • 4.6.使用 Poudriere 构建软件包
    • 4.7.安装后的注意事项
    • 4.8.如何处理损坏的 port
  • 第5章 X Window 系统
    • 5.1.概述
    • 5.2.安装 Xorg
    • 5.3.显卡驱动
    • 5.4.Xorg 配置
    • 5.5.在 X11 中使用字体
  • 第6章 FreeBSD 中的 Wayland
    • 6.1.简介
    • 6.2.Wayland 概述
    • 6.3.Wayfire 混成器
    • 6.4.Hikari 混成器
    • 6.5.Sway 混成器
    • 6.6.使用 Xwayland
    • 6.7.使用 VNC 进行远程连接
    • 6.8.Wayland 登录管理器
    • 6.9.实用工具
  • 第7章 网络
    • 7.1.概述
    • 7.2.设置网络
    • 7.3.有线网络
    • 7.4.无线网络
    • 7.5.主机名
    • 7.6.DNS
    • 7.7.故障排除
  • 第二部分:常见任务
  • 第8章 桌面环境
    • 8.1.概述
    • 8.2.桌面环境
    • 8.3.浏览器
    • 8.4.开发工具
    • 8.5.桌面办公应用
    • 8.6.文档阅读器
    • 8.7.财务
  • 第9章 多媒体
    • 9.1.概述
    • 9.2.设置声卡
    • 9.3.音频播放器
    • 9.4.视频播放器
    • 9.5.视频会议
    • 9.6.图像扫描仪
  • 第10章 配置 FreeBSD 内核
    • 10.1.概述
    • 10.2.为什么要构建定制内核
    • 10.3.浏览系统硬件
    • 10.4.配置文件
    • 10.5.构建并安装定制内核
    • 10.6.如果发生了错误
  • 第11章 打印
    • 11.1.快速入门
    • 11.2.连接打印机
    • 11.3.常见的页面描述语言(PDL)
    • 11.4.直接打印
    • 11.5.LPD(行式打印机程序)
    • 11.6.其他打印系统
  • 第12章 Linux 二进制兼容层
    • 12.1.概述
    • 12.2.配置 Linux 二进制兼容层
    • 12.3.Linux 用户空间
    • 12.4.高级主题
  • 第13章 WINE
    • 13.1.概述
    • 13.2.WINE 概述和概念
    • 13.3.在 FreeBSD 上安装 WINE
    • 13.4.在 FreeBSD 上运行第一个 WINE 程序
    • 13.5.配置 WINE 安装程序
    • 13.6.WINE 图形化用户管理界面
    • 13.7.多用户 FreeBSD 与 WINE
    • 13.8.FreeBSD 上的 WINE 常见问题
  • 第三部分:系统管理
  • 第14章 配置与优化
    • 14.1.概述
    • 14.2.配置文件
    • 14.3.管理 FreeBSD 中的服务
    • 14.4.Cron 和 Periodic
    • 14.5.配置系统日志
    • 14.6.电源和资源管理
    • 14.7.添加交换空间
  • 第15章 FreeBSD 的引导过程
    • 15.1.概述
    • 15.2.FreeBSD 的引导过程
    • 15.3.Device Hints
    • 15.4.关机流程
  • 第16章 安全
    • 16.1.概述
    • 16.2.简介
    • 16.3.账户安全
    • 16.4.入侵检测系统(IDS)
    • 16.5.安全等级
    • 16.6.文件标志位
    • 16.7.OpenSSH
    • 16.8.OpenSSL
    • 16.9.Kerberos
    • 16.10.TCP 封装器(TCP Wrapper)
    • 16.11.访问控制列表(ACL)
    • 16.12.Capsicum
    • 16.13.进程记账
    • 16.14.资源限制
    • 16.15.监控第三方安全问题
    • 16.16.FreeBSD 安全公告
  • 第17章 jail 与容器
    • 17.1.概述
    • 17.2.jail 的类型
    • 17.3.主机配置
    • 17.4.传统 jail(厚 jail)
    • 17.5.瘦 jail
    • 17.6.管理 jail
    • 17.7.更新 jail
    • 17.8.jail 资源限制
    • 17.9.jail 管理器与容器
  • 第18章 强制访问控制
    • 18.1.概述
    • 18.2.关键术语
    • 18.3.了解 MAC 标签
    • 18.4.规划安全配置
    • 18.5.可用的 MAC 策略
    • 18.6.用户锁定
    • 18.7.MAC Jail 中的 Nagios
    • 18.8.MAC 框架的故障排除
  • 第19章 安全事件审计
    • 19.1.概述
    • 19.2.关键术语
    • 19.3.审计配置
    • 19.4.使用审计跟踪
  • 第20章 存储
    • 20.1.概述
    • 20.2.添加磁盘
    • 20.3.调整和增加磁盘大小
    • 20.4.USB 存储设备
    • 20.5.创建和使用 CD
    • 20.6.创建和使用 DVD
    • 20.7.创建和使用软盘
    • 20.8.备份的基础知识
    • 20.9.内存盘
    • 20.10.文件系统快照
    • 20.11.磁盘配额
    • 20.12.加密磁盘分区
    • 20.13.加密交换分区
    • 20.14.高可用性存储(HAST)
  • 第21章 GEOM: 模块化磁盘转换框架
    • 21.1.概述
    • 21.2.RAID0——条带
    • 21.3.RAID1——镜像
    • 21.4.RAID3——带有专用奇偶校验的字节级条带
    • 21.5.软件 RAID 设备
    • 21.6.GEOM Gate 网络设备
    • 21.7.为磁盘设备添加卷标
    • 21.8.通过 GEOM 实现 UFS 日志
  • 第22章 Z 文件系统(ZFS)
    • 22.1.是什么使 ZFS 与众不同
    • 22.2.快速入门指南
    • 22.3.zpool 管理
    • 22.4.zfs 管理
    • 22.5.委托管理
    • 22.6.高级主题
    • 22.7.更多资源
    • 22.8.ZFS 特性和术语
  • 第23章 其他文件系统
    • 23.1.概述
    • 23.2.Linux® 文件系统
    • 23.3.Windows® 文件系统
    • 23.4.MacOS® 文件系统
  • 第24章 虚拟化
    • 24.1.概述
    • 24.2.使用 macOS® 上的 Parallels Desktop 安装 FreeBSD
    • 24.3.使用 macOS® 上的 VMware Fusion 安装 FreeBSD
    • 24.4.使用 VirtualBox™ 安装 FreeBSD
    • 24.5.在 FreeBSD 上安装 VirtualBox™
    • 24.6.使用 FreeBSD 上的 QEMU 虚拟化
    • 24.7.使用 FreeBSD 上的 bhyve 虚拟机
    • 24.8.基于 FreeBSD 的 Xen™ 虚拟机
  • 第25章 本地化——i18n/L10n 的使用和设置
    • 25.1.概述
    • 25.2.使用本地化
    • 25.3.寻找 i18n 应用程序
    • 25.4.特定语言的区域配置
  • 第26章 FreeBSD 更新与升级
    • 26.1.概述
    • 26.2.更新 FreeBSD
    • 26.3.更新 Bootcode
    • 26.4.更新文档
    • 26.5.追踪开发分支
    • 26.6.从源代码更新 FreeBSD
    • 26.7.多台机器的追踪
    • 26.8.在非 FreeBSD 主机上进行构建
  • 第27章 DTrace
    • 27.1.概述
    • 27.2.实现上的差异
    • 27.3.开启 DTrace 支持
    • 27.4.启用内核外部模块 DTrace
    • 27.5.使用 DTrace
  • 第28章 USB 设备模式/USB OTG
    • 28.1.概述
    • 28.2.USB 虚拟串行端口
    • 28.3.USB 设备模式网络接口
    • 28.4.USB 虚拟存储设备
  • 第四部分:网络通讯
  • 第29章 串行通信
    • 29.1.概述
    • 29.2.串行术语和硬件
    • 29.3.终端
    • 29.4.拨入服务
    • 29.5.拨出服务
    • 29.6.设置串行控制台
  • 第30章 PPP
    • 30.1.概述
    • 30.2.配置 PPP
    • 30.3.PPP 连接的故障排除
    • 30.4.使用以太网 PPP(PPPoE)
    • 30.5.使用 ATM 上的 PPP (PPPoA)
  • 第31章 电子邮件
    • 31.1.概述
    • 31.2.邮件组件
    • 31.3.DragonFly 邮件代理(DMA)
    • 31.4.Sendmail
    • 31.5.修改邮件传输代理
    • 31.6.邮件用户代理
    • 31.7.高级主题
  • 第32章 网络服务器
    • 32.1.概述
    • 32.2.inetd 超级服务器
    • 32.3.网络文件系统(NFS)
    • 32.4.网络信息系统(NIS)
    • 32.5.轻型目录访问协议(LDAP)
    • 32.6.动态主机设置协议(DHCP)
    • 32.7.域名系统(DNS)
    • 32.8.零配置网络(mDNS/DNS-SD)
    • 32.9.Apache HTTP 服务器
    • 32.10.文件传输协议(FTP)
    • 32.11.用于 Microsoft® Windows® 客户端的文件和打印服务(Samba)
    • 32.12.用 NTP 进行时钟同步
    • 32.13.iSCSI target 和 initiator 的配置
  • 第33章 防火墙
    • 33.1.概述
    • 33.2.防火墙的概念
    • 33.3.PF
    • 33.4.IPFW
    • 33.5.IPFILTER(IPF)
    • 33.6.Blacklistd
  • 第34章 高级网络
    • 34.1.概述
    • 34.2.网关和路由
    • 34.3.虚拟主机
    • 34.4.无线高级身份验证
    • 34.5.无线自组织(Ad-hoc)模式
    • 34.6.USB 网络共享
    • 34.7.蓝牙
    • 34.8.桥接
    • 34.9.链路聚合与故障转移
    • 34.10.使用 PXE 进行无盘操作
    • 34.11.共用地址冗余协议(CARP)
    • 34.12.VLAN
  • 第五部分:附录
  • 附录 A.获取 FreeBSD
    • A.1.镜像站
    • A.2.使用 Git
    • A.3.使用 Subversion
    • A.4.光盘
  • 附录 B.书目
    • B.1.FreeBSD 相关书籍
    • B.2.安全性参考文献
    • B.3.UNIX 历史
    • B.4.期刊与杂志
  • 附录 C.网络资源
    • C.1.网站
    • C.2.邮件列表
    • C.3.Usenet 新闻组
  • 附录 D.OpenPGP 密钥
    • D.1.官方成员
  • 术语表
  • 后记
由 GitBook 提供支持

FreeBSD 中文社区

在本页
  • 3.3.1. 账户类型
  • 3.3.1.1. 系统账户
  • 3.3.1.2. 用户账户
  • 3.3.1.3. 超级用户账户
  • 3.3.2. 管理账户
  • 3.3.2.1. 添加用户
  • 3.3.2.2. 删除用户
  • 3.3.2.3. 更改用户信息
  • 3.3.2.4. 更改用户密码
  • 3.3.2.5. 创建、删除、修改和显示系统用户与组
  • 3.3.3. 管理用户组

这有帮助吗?

在GitHub上编辑
导出为 PDF
  1. 第3章 FreeBSD 基础

3.3.用户和基本账户管理

FreeBSD 允许多个用户同时使用计算机。尽管同一时间只能有一个用户坐在屏幕前使用键盘,但任意数量的用户都可以通过网络登录系统。为了使用系统,每位用户都应拥有自己的用户账户。

本章将介绍:

  • FreeBSD 系统中不同类型的用户账户;

  • 如何添加、删除和修改用户账户;

  • 如何设置资源访问限制,以控制用户和用户组的权限;

  • 如何创建用户组,并将用户添加为组成员。

3.3.1. 账户类型

由于访问 FreeBSD 系统的所有操作都必须通过账户完成,且所有进程均由用户启动,因此用户与账户管理至关重要。

FreeBSD 中主要有三类账户:系统账户、用户账户,以及超级用户账户。

3.3.1.1. 系统账户

系统账户用于运行诸如 DNS、邮件和 Web 服务器等服务。这样做的原因是出于安全考虑;如果所有服务都以超级用户身份运行,它们将可以不受限制地执行操作。

系统账户的例子如 daemon、operator、bind、news 和 www。

nobody 是一个通用的非特权系统账户。然而,使用 nobody 的服务越多,该用户关联的文件和进程就越多,从而其潜在权限也逐渐提升。

3.3.1.2. 用户账户

用户账户是分配给真实用户的,用于登录和使用系统。每位访问系统的人都应拥有一个唯一的用户账户。这样可以使管理员了解每位用户的操作,并防止用户之间相互干扰配置。

每位用户可以通过配置默认 shell、编辑器、按键绑定和语言设置等方式,设置适合自己的系统使用环境。

FreeBSD 系统中的每个用户账户都包含以下信息:

用户名 用户名是在 login: 提示符处输入的标识。每个用户必须拥有唯一的用户名。创建合法用户名的规则详见 passwd(5)。建议使用不超过八个字符且全部小写的用户名,以保持对旧应用程序的兼容性。

密码 每个账户都需要设置密码。

用户 ID(UID) 用户 ID 是用于在 FreeBSD 系统中唯一标识该用户的数字。支持用户名参数的命令会首先将其转换为 UID。建议使用小于 65535 的 UID,因部分软件可能对更大的 UID 兼容性不佳。

组 ID(GID) 组 ID 是用于唯一标识用户所属主要用户组的数字。组是一种机制,通过 GID(而非 UID)来控制对资源的访问。这可显著减小部分配置文件的体积,并允许用户同时属于多个组。建议使用不超过 65535 的 GID,因更高的 GID 可能会导致某些软件运行异常。

登录类(Login class) 登录类是组机制的扩展,用于在面向不同用户时提供更大的灵活性。相关内容将在 配置登录类 中进一步讨论。

密码变更时间 默认情况下,密码不会过期。但也可以为每个用户单独启用密码过期策略,强制其在一段时间后更改密码。

账户过期时间 FreeBSD 默认不会使账户过期。如需创建具有使用期限的账户(例如学校中的学生账户),可使用 pw(8) 命令指定账户过期时间。若过期,该账户将无法登录,但其目录和文件仍会保留。

用户全名 用户名是 FreeBSD 用于识别账户的唯一标识,但不一定反映用户的真实姓名。类似注释字段,该信息可以包含空格、大写字符,并超过八个字符。

家目录 家目录是系统中某个目录的完整路径,是用户登录系统后的起始位置。通常的做法是将所有用户的家目录放在 /home/用户名 或 /usr/home/用户名 下。用户可在其家目录中存储个人文件和子目录。

用户 shell shell 是用户与系统交互的默认环境。存在多种 shell 类型,有经验的用户通常会有自己的偏好,可以通过账户设置进行配置。

3.3.1.3. 超级用户账户

超级用户账户通常称为 root,用于以无限制权限管理系统。因此,不应将其用于日常任务,例如收发邮件、浏览系统和编程。

与其他用户账户不同,超级用户可以无所限制地操作系统,若误用可能造成严重后果。普通用户的权限则受限,不太可能意外破坏整个系统。因此建议用户使用普通账户进行日常操作,仅在某个命令需要额外权限时再切换为超级用户。

使用超级用户身份执行命令时应三思而后行,多次确认命令内容,因为一个多余的空格或漏掉的字符都可能导致数据无法恢复。

获取超级用户权限有多种方式。虽然可以直接以 root 身份登录,但强烈不推荐这么做。

更好的方式是使用 su(1) 命令切换为超级用户。如果在执行时指定了 - 参数,用户还会继承 root 用户的环境。执行此命令的用户必须属于 wheel 组,否则命令会失败。此外,还必须知道 root 用户的密码。

下面的示例中,用户仅为了运行 make install 而临时切换为超级用户。完成后,输入 exit 即可退出超级用户身份并返回普通用户权限。

示例 1:以超级用户身份安装程序

% configure
% make
% su -
Password:
# make install
# exit
%

内建的 su(1) 框架适合单一系统或由一位管理员管理的小型网络。另一个选择是安装 security/sudo 软件包或 port。该软件支持操作记录,并允许管理员配置哪些用户可以以超级用户身份运行哪些命令。

3.3.2. 管理账户

FreeBSD 提供了多种不同的命令来管理用户账户。最常用的命令已在 管理用户账户的工具 中总结,后面还附有一些使用示例。更多细节和使用示例请参考每个工具的手册页。

表 1. 管理用户账户的工具

命令
概要

推荐用于添加新用户的命令行应用程序。

推荐用于删除用户的命令行应用程序。

用于更改用户数据库信息的灵活工具。

用于更改用户密码的命令行工具。

可修改用户账户所有方面的强大灵活工具。

带有账户管理支持的系统配置工具。

3.3.2.1. 添加用户

推荐使用的添加新用户的程序是 adduser(8)。添加新用户时,此程序会自动更新 /etc/passwd 和 /etc/group。它还会为新用户创建 home 目录,从 /usr/share/skel 复制默认配置文件,并可选地向新用户发送一封欢迎邮件。此工具必须由超级用户运行。

adduser(8) 是交互式的,会逐步引导创建新用户账户。如 在 FreeBSD 上添加用户 所示,输入所需信息或按 Return 接受方括号中的默认值。在此示例中,用户被邀请加入 wheel 组,使其可以通过 su(1) 成为超级用户。完成后,该工具会提示是创建另一个用户还是退出。

示例 2. 在 FreeBSD 上添加用户

# adduser

输出应类似如下:

Username: jru
Full name: J. Random User
Uid (Leave empty for default):   # UID(留空以使用默认值)
Login group [jru]:               # 登录组
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:          # 登录类
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:     # home 目录
Home directory permissions (Leave empty for default):  # home 目录权限(留空使用默认)
Use password-based authentication? [yes]:             # 使用基于密码的认证?
Use an empty password? (yes/no) [no]:                 # 使用空密码?
Use a random password? (yes/no) [no]:                 # 使用随机密码?
Enter password:                 # 输入密码
Enter password again:          # 再次输入密码
Lock out the account after creation? [no]:            # 创建后锁定账户?
Username   : jru
Password   : ****
Full Name  : J. Random User
Uid        : 1001
Class      :
Groups     : jru wheel
Home       : /home/jru
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!

注意

由于输入密码时不会回显,请在创建用户账户时小心不要输错密码。

3.3.2.2. 删除用户

要从系统中彻底删除某用户,请以超级用户身份运行 rmuser(8)。该命令会执行以下步骤:

  1. 删除该用户的 crontab(1) 项(若有)。

  2. 删除该用户的所有 at(1) 任务。

  3. 向该用户的所有进程发送 SIGKILL 信号。

  4. 从系统本地密码文件中删除该用户。

  5. 删除该用户的 home 目录(如果其归用户所有),包括处理通往实际 home 目录路径中的符号链接。

  6. 从 /var/mail 中删除属于该用户的邮件文件。

  7. 从 /tmp、/var/tmp 和 /var/tmp/vi.recover 中删除所有属于该用户的文件。

  8. 从 /etc/group 中所有该用户所属的组中移除用户名。(如果某个组为空,且组名与用户名相同,则该组也会被删除;这是对 adduser(8) 为每个用户创建唯一组的补充。)

  9. 删除该用户拥有的所有消息队列、共享内存段和信号量。

rmuser(8) 不能用于删除超级用户账户,因为这几乎总是意味着严重破坏。

默认情况下,该命令以交互模式运行,如下所示:

示例 3. rmuser 交互式删除账户

# rmuser jru

输出应类似如下:

Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Removing user (jru): mailspool home passwd.

3.3.2.3. 更改用户信息

所有用户都可以使用 chpass(1) 更改其默认 shell 和账户的个人信息。超级用户可以用此工具更改任意用户的额外账户信息。

若不带参数(或仅带可选用户名),chpass(1) 会显示一个编辑器用于更改用户信息。用户退出编辑器时,用户数据库将更新为新的信息。

注意

除非以超级用户身份运行,否则该工具在退出编辑器时会提示输入用户密码。

在 以超级用户身份使用 chpass 一节中,超级用户输入了 chpass jru,正在查看可更改的字段。若 jru 自己运行该命令,仅会显示后六个字段供编辑。这在 以普通用户身份使用 chpass 中展示。

示例 4. 以超级用户身份使用 chpass

# chpass jru

输出应类似如下:

# 修改 jru 的账户信息数据库
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:       # 密码更改日期
Expire [month day year]:       # 账户过期日期
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:               # 办公地点
Office Phone:                  # 办公电话
Home Phone:                    # 家庭电话
Other information:             # 其他信息

示例 5. 以普通用户身份使用 chpass

# 修改 jru 的账户信息数据库
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:               # 办公地点
Office Phone:                  # 办公电话
Home Phone:                    # 家庭电话
Other information:             # 其他信息

chfn(1) 与 chsh(1) 是 chpass(1) 的链接命令,ypchpass(1)、ypchfn(1) 和 ypchsh(1) 也是。由于 NIS 支持是自动的,无需在命令前加 yp。NIS 配置方法见 网络服务器。

3.3.2.4. 更改用户密码

任何用户都可以使用 passwd(1) 轻松更改密码。为防止意外或未经授权的更改,该命令在设置新密码前会提示输入原密码:

示例 6. 更改自己的密码

% passwd

输出应类似如下:

Changing local password for jru.
Old password:                  # 输入旧密码
New password:                  # 输入新密码
Retype new password:           # 再次输入新密码
passwd: updating the database...
passwd: done

超级用户可以通过指定用户名来更改任意用户的密码。以超级用户身份运行该工具时,不会提示输入当前密码。这可用于用户忘记原密码时更改密码。

示例 7. 以超级用户身份更改其他用户密码

# passwd jru

输出应类似如下:

Changing local password for jru.
New password:                  # 输入新密码
Retype new password:           # 再次输入新密码
passwd: updating the database...
passwd: done

与 chpass(1) 一样,yppasswd(1) 也是 passwd(1) 的链接命令,因此 NIS 与这两个命令都兼容。

3.3.2.5. 创建、删除、修改和显示系统用户与组

pw(8) 工具可用于创建、删除、修改和显示用户与组。它是系统用户和组文件的前端。pw(8) 提供了非常强大的命令行选项,适合用于 shell 脚本,但对于新用户来说可能比本节中的其他命令更复杂。

3.3.3. 管理用户组

一个用户组是一组用户的列表。一个用户组通过其组名和 GID 来标识。在 FreeBSD 中,内核通过进程的 UID 和其所属的用户组列表来判断该进程被允许执行哪些操作。在大多数情况下,某个用户或进程的 GID 通常指的是该列表中的第一个用户组。

组名与 GID 的映射关系记录在 /etc/group 中。这个文件是一个纯文本文件,包含四个用冒号分隔的字段。第一个字段是组名,第二个字段是加密密码,第三个字段是 GID,第四个字段是成员的逗号分隔列表。完整的语法描述请参考 group(5)。

超级用户可以使用文本编辑器修改 /etc/group,不过建议使用 vigr(8) 进行编辑,因为它可以捕捉一些常见错误。另一种方式是使用 pw(8) 来添加和编辑用户组。例如,要添加一个名为 teamtwo 的用户组并确认其存在:

警告

使用 operator 用户组时必须格外小心,因为这可能会授予意想不到的类似超级用户的权限,包括但不限于关机、重启,以及访问该组在 /dev 中的所有条目。

示例 8:使用 pw(8) 添加用户组

# pw groupadd teamtwo
# pw groupshow teamtwo

输出应类似如下:

teamtwo:*:1100:

在这个例子中,1100 是 teamtwo 的 GID。此时,teamtwo 还没有成员。以下命令将会添加 jru 作为 teamtwo 的成员。

示例 9:使用 pw(8) 将用户账户添加到一个新用户组中

# pw groupmod teamtwo -M jru
# pw groupshow teamtwo

输出应类似如下:

teamtwo:*:1100:jru

传递给 -M 的参数是一个以逗号分隔的用户列表,用于添加到一个新的(空的)用户组中,或者用于替换现有用户组的全部成员。对用户而言,这种组成员资格不同于密码文件中列出的主用户组(且是额外的)。这意味着使用 pw(8) 的 groupshow 时不会显示该用户,但通过 id(1) 或类似工具查询信息时则会显示。当使用 pw(8) 将用户添加到组中时,它仅操作 /etc/group,不会从 /etc/passwd 读取其他数据。

示例 10:使用 pw(8) 向组中添加新成员

# pw groupmod teamtwo -m db
# pw groupshow teamtwo

输出应类似如下:

teamtwo:*:1100:jru,db

在这个例子中,传递给 -m 的参数是一个以逗号分隔的用户列表,这些用户将被添加进组中。与前一个示例不同,这些用户是追加添加的,并不会替换已有用户。

示例 11:使用 id(1) 来判断用户组成员资格

% id jru

输出应类似如下:

uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)

在这个例子中,jru 是 jru 和 teamtwo 这两个用户组的成员。

关于该命令和 /etc/group 格式的更多信息,请参阅 pw(8) 和 group(5)。

上一页3.2.虚拟控制台和终端下一页3.4.权限

最后更新于1个月前

这有帮助吗?

adduser(8)
rmuser(8)
chpass(1)
passwd(1)
pw(8)
bsdconfig(8)