3. chgrp 命令

chgrp(Change Group)是 Linux/Unix 系统中用于修改 文件或文件夹的所属组的命令。它的作用是 调整文件/文件夹的组归属,从而控制哪些用户组可以访问该文件。

组(Group)是 Linux/UNIX中用于权限管理的工具。

组是一种用于管理用户权限的逻辑统一操作机制。它通过将多个用户归类到同一个组,简化了对文件、文件夹和系统资源的权限分配。

组的作用

  1. 权限共享:组内的用户可以共享文件或文件夹的组权限(如读、写、执行)。
  2. 精细控制:通过为组分配特定权限,避免为每个用户单独设置权限的繁琐操作。
  3. 系统管理:服务进程(如 www-data、docker)通常以特定组运行,确保安全性。

组相关文件

/etc/group 是用于存储组信息的文件,他的格式是 组名:密码占位符:GID:成员列表。如下所示:

weimingze@mzstudio:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,weimingze
...
gnome-initial-setup:x:985:
weimingze:x:1000:

冒号分隔

  1. 第一列:组名
  2. 第二列:密码占位符
  3. 第三列:组ID(GID)
  4. 第四列:组内的用户,以英文的逗号分隔。

命令格式

chgrp [选项] 新组名 文件或文件夹

示例:

weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ sudo chgrp root hello.py  # 将 hello.py 的属组改为 root
[sudo] password for weimingze:
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze root 23 May 22 11:57 hello.py
weimingze@mzstudio:~$ sudo chgrp 1000 hello.py  # 将 hello.py 的属组改为 weimingze(weimingze的组ID为1000)
weimingze@mzstudio:~$ ls -l hello.py
-rw-rw-r-- 1 weimingze weimingze 23 May 22 11:57 hello.py

常用选项

选项
说明
-R
递归修改文件夹及其子文件/文件夹的组归属。
--reference=参照文件
将目标文件的组设为与参照文件相同。
-v
显示详细操作信息(verbose)。
-c
仅显示发生更改的文件信息。

练习:

  1. 在 根文件夹下创建文件 /temp.txt
  2. /temp.txt 的属组都设置为当前登录的用户。
  3. 修改 /temp.txt 文件的权限为 660
  4. 退出 root 用户权限,使用 当前登录用户权限修改/temp.txt 文件。
  5. 使用 root 用户权限删除 /temp.txt 文件。