理解组信息和权限
既然你已经知道如何更改组所有权,那么让我们来探讨如何查看组信息,以及理解组权限为何重要。
在 Linux 中,有关组的信息存储在 /etc/group
文件中。你可以使用 getent
命令查看系统中存在的组:
getent group
这将显示系统上所有组的长列表。若要仅查看我们一直在使用的组,你可以过滤输出:
getent group | grep -E 'defenders|strategists'
你应该会看到类似以下的输出:
defenders:x:1001:
strategists:x:1002:
若要查看当前用户属于哪些组,可使用 groups
命令:
groups
输出将显示你的用户所属的所有组:
labex adm cdrom sudo dip plugdev lpadmin sambashare
现在,让我们理解组权限为何重要。在 Linux 中,文件权限分为三个类别:所有者、组和其他用户。让我们创建一个新文件并修改其权限来进行演示:
touch ~/project/group_example.txt
ls -l ~/project/group_example.txt
输出将显示默认权限:
-rw-r--r-- 1 labex labex 0 Jan 12 16:40 group_example.txt
权限字符串 -rw-r--r--
可以分解为:
- 第一个字符:文件类型(
-
表示普通文件)
- 接下来三个字符(
rw-
):所有者权限(读、写,无执行权限)
- 再接下来三个字符(
r--
):组权限(只读)
- 最后三个字符(
r--
):其他用户权限(只读)
让我们更改组权限以允许写入访问:
chmod g+w ~/project/group_example.txt
ls -l ~/project/group_example.txt
现在输出显示为:
-rw-rw-r-- 1 labex labex 0 Jan 12 16:40 group_example.txt
注意,组权限已从 r--
更改为 rw-
。
最后,让我们结合所学内容,同时更改组所有权和组权限:
sudo chgrp defenders ~/project/group_example.txt
chmod g+x ~/project/group_example.txt
ls -l ~/project/group_example.txt
结果应该是:
-rw-rwxr-- 1 labex defenders 0 Jan 12 16:40 group_example.txt
现在,该文件归 defenders
组所有,并且该组的成员具有读、写和执行权限。