Linux 用户与组简析 | AI生成和翻译

Home 2026.02

Question: I’m always confused by groups and users in the previous explanations. Is this normal? How do Linux user groups actually work?

Answer:

是的,起初对 Linux 中的 user 和 group 感到困惑是完全正常的——即使是使用 Linux 多年的人,有时也需要反复确认它们是如何交互的。这些概念非常强大,但在初次接触时并不直观。

以下是关于 Linux users 和 groups 如何工作的清晰、逐步的解释,特别是结合我们为什么在 nginx 中使用 www-data group 的背景。

1. 每一个文件和文件夹都有一个 owner user + 一个 owner group

运行以下命令查看:

ls -l /home/lzw/qDownloads

示例输出:

-rw-r--r--  1 lzw    lzw      1234 Feb 10 02:00 movie.mp4
drwxr-xr-x  2 lzw    lzw      4096 Feb 10 01:00 Series/

列解释:

2. 每个用户可以属于多个 groups

你的用户 lzw 可能属于这些 groups(用此命令检查):

groups lzw
# 或者直接输入:groups(当以 lzw 登录时)

典型输出:

lzw adm cdrom sudo dip plugdev lpadmin sambashare

lzw 是他自己 group lzw 的成员,同时也是其他几个 group 的成员。

nginx 用户(通常名为 www-data)属于:

groups www-data
# 通常只有:www-data

但如果需要,我们可以将 www-data 添加到其他 groups 中。

3. nginx 如何获得访问你文件的权限(我们使用的两种主要方式)

方式 A – 给 “others” 权限 (o+rx)

chmod -R o+rx /home/lzw/qDownloads

→ 系统中的任何人(包括 www-data)都可以读取和列出该文件夹。
→ 简单,但安全性较低——任何 service 或 user 都能看到你的下载内容。

方式 B – 使用 group 机制(推荐)

我们这样做:

sudo chgrp -R www-data /home/lzw/qDownloads
sudo chmod -R g+rx /home/lzw/qDownloads
sudo chmod g+x /home/lzw

实际发生了什么:

  1. 文件的 group owner 变成了 www-data
  2. group 权限 (g+rx) 被设置为 read + execute
  3. 因为 www-data 用户在 www-data group 中,nginx 可以使用 group 权限
  4. nginx 不需要成为文件 owner (lzw),也不需要 “others” 权限

结果:只有 nginx(以及 www-data group 中的其他 process)可以读取该文件夹——这要安全得多。

形象的比喻 – 现实生活

选项:

Linux groups = 在不让某人成为房主的情况下,给他们一把“备用钥匙”。

总结表 – 权限决策指南

目标 使用的方法 Security Convenience
只有你能访问文件 保持默认 (chmod 700) Best 只有你
Nginx + 你可以访问文件 chgrp www-data + chmod g+rx Good 推荐
系统中的每个人都能访问 chmod -R o+rX Bad 最简单
完全以你的身份运行 nginx 在 nginx.conf 中设置 user lzw Worst 非常简单(但危险)

大多数 Linux 新手会从“对所有人开放”(o+r) 开始,然后稍后学习 group 技巧——这很正常。

如果还有任何困惑,请告诉我具体哪部分(例如 “chgrp 到底改变了什么?” 或 “为什么我们需要在 /home/lzw 上设置 g+x?”),我会用更多例子来解释。

References:


Back Donate