Linux管理的第一步:用户(User)与组(Group)完整指南 🧑‍💼

大家好!在处理Linux这个出色的操作系统时,最先遇到的关卡之一就是“用户管理”。为什么我们要为每个用户单独创建账户,又为什么要复杂地划分群组呢?🤔

原因正是安全与权限管理。通过只赋予每个人必要的权限并明确追踪操作记录,系统可以运行得更加稳定和安全。今天,我将A到Z地、简单明了地为大家讲解Linux用户和组管理的所有内容!


1. 邀请新用户 (useradd, adduser)

向系统添加新用户的命令主要有两种:

  • useradd: 基本的低级(low-level)工具。可以通过选项在一行中指定所有设置,因此常用于脚本。
  • adduser: 基于useradd创建的用户友好型脚本。以交互方式进行,方便初学者使用。

在这里,我们将重点介绍具有强大选项的useradd。

# 创建用户'harry',并指定默认shell为zsh,辅助组为sudo的示例
sudo useradd -m -s /bin/zsh -G sudo harry
  • -m: 创建用户的主目录。(通常是 /home/username)
  • -s: 指定用户登录时使用的默认Shell。(例如:/bin/bash, /bin/zsh)
  • -g: 指定用户的主(Primary)组。(下面会详细说明!)
  • -G: 指定用户所属的辅助(Secondary)组,用逗号分隔。

2. 设置用户密码 (passwd, chpasswd)

创建用户后,需要设置密码,对吧?

  • passwd [用户名]: 最常见的方法。管理员用于设置其他用户的密码。

`

sudo passwd harry

`

  • chpasswd: 在脚本中设置密码时非常实用的命令。

`

将用户’harry’的密码设置为’supersecret’

echo ‘harry:supersecret’ | sudo chpasswd

`


3. 组的概念:主组 vs 辅助组 (最重要!)

在Linux中,组是权限管理的核心。用户必须属于一个“主组”,并且可以额外属于多个“辅助组”。

🏢 主组 (Primary Group)

  • 就像用户所属的“主要部门”。
  • 当用户创建文件时,该文件默认归属于这个主组。
  • 如果在创建用户时未指定,通常会自动创建一个与用户名同名的组作为主组。

🤝 辅助组 (Secondary Groups)

  • 就像用户参与的 extit{ extit}“项目团队”或“社团” extit{ extit}。
  • 用于赋予用户对特定文件或目录的额外访问权限。
  • 最典型的例子是sudo或wheel组。属于这些组的用户可以临时获得管理员权限!

用户的组信息可以通过id命令一目了然。

id harry
# uid=1001(harry) gid=1001(harry) groups=1001(harry),27(sudo)
#                   ▲ 主组(gid)                     ▲ 辅助组(groups)

4. 修改现有用户信息 (usermod)

如果想修改已创建的用户信息,可以使用usermod (User Modify) 命令。

修改主组

我们把harry的主要部门移到sales团队吧?

# 将harry的主组更改为sales
sudo usermod -g sales harry
  • -g: 这是修改主组的选项。

添加到辅助组 (⚠️ 注意!)

让harry也加入developers项目团队吧。

# 将harry“添加”到developers组
sudo usermod -aG developers harry
  • -aG: 将用户 extit{ extit}添加(Append) extit{ extit}到新的辅助组。这里的-a选项非常重要!
  • 如果只输入usermod -G developers harry而没有-a,用户将退出所有现有的辅助组(如sudo),只属于developers组,所以务必注意。

5. 管理组本身的命令

  • groupadd [组名]: 创建新组。(例如:sudo groupadd sales)
  • groupdel [组名]: 删除现有组。

结论:权限管理的开始与结束

只要您清楚理解useradd、passwd、usermod、id这四个命令以及“主组/辅助组”的概念,就相当于掌握了Linux权限管理的一半。

系统地管理用户和组的习惯是加强系统安全、防止意外错误的最基本的第一步。今天学到的内容将帮助您使服务器更加坚固!🚀


标签:

Linux, 用户管理, 组管理, useradd, usermod, passwd, chpasswd, sudo, Linux基础, 系统管理


Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注