3. chgrp 命令
chgrp(Change Group)是 Linux/Unix 系统中用于修改 文件或文件夹的所属组的命令。它的作用是 调整文件/文件夹的组归属,从而控制哪些用户组可以访问该文件。
组
组(Group)是 Linux/UNIX中用于权限管理的工具。
组是一种用于管理用户权限的逻辑统一操作机制。它通过将多个用户归类到同一个组,简化了对文件、文件夹和系统资源的权限分配。
组的作用
- 权限共享:组内的用户可以共享文件或文件夹的组权限(如读、写、执行)。
- 精细控制:通过为组分配特定权限,避免为每个用户单独设置权限的繁琐操作。
- 系统管理:服务进程(如 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:
冒号分隔
- 第一列:组名
- 第二列:密码占位符
- 第三列:组ID(GID)
- 第四列:组内的用户,以英文的逗号分隔。
命令格式
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仅显示发生更改的文件信息。
练习:
- 在 根文件夹下创建文件
/temp.txt - 将
/temp.txt的属组都设置为当前登录的用户。 - 修改
/temp.txt文件的权限为660。 - 退出 root 用户权限,使用 当前登录用户权限修改
/temp.txt文件。 - 使用 root 用户权限删除
/temp.txt文件。