5 用户与权限管理之权限和用户组

在上一篇文章中,我们深入探讨了 Linux 系统中的用户管理命令,学习了如何创建、修改和删除用户账号。本篇将集中讨论 Linux 系统中的权限和用户组的概念。理解这些内容对于有效管理系统安全至关重要。

一、Linux 权限概述

在 Linux 系统中,每个文件和目录都有其特定的访问权限,这些权限决定了用户是否能够读取、修改或执行某个文件。Linux 文件权限主要分为三种类型:

  • 读取权限:r,允许查看文件内容或列出目录内容。
  • 写入权限:w,允许修改文件内容或添加、删除目录中的文件。
  • 执行权限:x,允许执行文件或进入目录。

每个文件或目录都有一个与之关联的拥有者(user)和一个用户组(group)。在 Linux 中,权限是基于用户、组和其他用户(others)来管理的。

权限表示法

Linux 使用符号表示权限,通过 ls -l 命令可以查看文件的权限。例如:

1
ls -l /path/to/file

输出示例如下:

1
-rwxr-xr-- 1 alice users  4096 Sep 10 10:00 example.txt

在这个输出中:

  • - 表示这是一个文件(d 表示目录)。
  • rwx 表示文件拥有者 alice 具有读、写和执行权限。
  • r-x 表示用户组 users 具有读和执行权限,但没有写权限。
  • r-- 表示其他用户具有读取权限。

权限的八进制表示法

Linux 还允许使用八进制数来设置权限。每个权限都对应一个特定的数字:

  • 读取(r):4
  • 写入(w):2
  • 执行(x):1

因此,权限可以用 0 - 7 的数字表示。例如,权限 rwxr-xr-- 对应的八进制数是 751,计算方式如下:

  • 拥有者权限(rwx)= 4 + 2 + 1 = 7
  • 用户组权限(r-x)= 4 + 0 + 1 = 5
  • 其他用户权限(r--)= 4 + 0 + 0 = 4

修改权限

使用 chmod 命令可以修改文件或目录的权限。例如,要将文件的权限设置为 751,可以执行:

1
chmod 751 /path/to/file

二、用户组的概念

用户组是将多个用户组织在一起的一种方式,以便于管理权限和访问控制。Linux 系统允许创建和使用用户组,以便对一组用户赋予相同的权限。

查看和管理用户组

使用 groups 命令可以查看当前用户所属的所有组:

1
groups username

要查看系统中的所有用户组,可以使用 cat /etc/group 命令。

创建用户组

可以使用 groupadd 命令创建用户组。比如,要创建一个名为 developers 的组,可以执行:

1
sudo groupadd developers

将用户添加到组中

使用 usermod 命令可以将用户添加到特定组中:

1
sudo usermod -aG developers alice

这里,-aG 参数表示将用户添加到附加组中,而不移除其已有的组。

修改组权限

类似于文件权限,用户组也具有权限设置。使用 chown 命令可以更改文件或目录的所属用户组。例如:

1
sudo chown :developers /path/to/file

这里的 : 表示修改文件的用户组,而不改变文件的拥有者。

三、权限与用户组的案例

假设我们有一个项目目录 /project,希望只有 developers 用户组的用户可以读取、写入和执行该目录中的文件,而其他用户无法访问。可以按照以下步骤操作:

  1. 创建 project 目录:

    1
    mkdir /project
  2. 设置目录的用户组为 developers

    1
    sudo chown :developers /project
  3. 修改目录权限,使得用户组具有完全访问权限,而其他用户无权限:

    1
    sudo chmod 770 /project

在这个例子中,770 的含义是:

  • 拥有者具有读、写和执行权限(7)
  • 用户组具有读、写和执行权限(7)
  • 其他用户没有任何权限(0)

这样,只有属于 developers 组的用户才能访问、修改和执行 /project 目录中的文件。

小结

在本篇中,我们详细介绍了 Linux 系统的权限和用户组的基本概念,以及如何使用命令行工具来管理它们。对于系统管理员来说,合理的权限管理能够有效提高系统的安全性。

下篇文章将讨论 sudo 和访问控制的配置与使用,继续提升我们的 Linux 系统管理能力。

5 用户与权限管理之权限和用户组

https://zglg.work/linux-system-admin/5/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论