Linux文件与目录权限管理全解析
立即解锁
发布时间: 2025-09-11 01:38:10 阅读量: 12 订阅数: 23 AIGC 


从零开始学Linux系统管理
### Linux 文件与目录权限管理全解析
#### 1. 文件权限的八进制表示
在设置文件权限时,八进制表示法是一种简洁的方式。每个八进制数字由三位二进制位表示,分别对应读(r)、写(w)、执行(x)权限,其位权值为 4、2、1。例如,若用户权限想要读和写但不执行,二进制表示为 110,转换为八进制就是 4 + 2 + 0 = 6。对于组权限,若要全读、写、执行,二进制为 111,八进制就是 4 + 2 + 1 = 7。
#### 2. 目录权限
目录权限与文件权限类似,具体如下:
- 读取权限(Read):允许列出目录内容。
- 写入权限(Write):允许在目录中创建、更改和删除文件。
- 执行权限(Execute):允许将该目录设置为当前工作目录(PWD)。
此外,还有两个特殊模式位,即 setgid 和 setuid 位,系统会广泛使用,但非 root 用户通常看不到其功能。
#### 3. 组所有权的意义
在 Linux 中,组所有权既能保障安全,又能实现用户间的文件共享。组是在 /etc/group 文件中定义的实体,有一个有意义的名称,如 “development” 或 “dev”,其中列出了组成员的用户 ID。通过将文件的组所有权设置为某个组,该组成员就能根据组权限访问文件。
#### 4. 实验 18 - 5:探索组所有权
此实验需以不同用户身份操作,包括 root 用户。具体步骤如下:
1. **创建新用户**:
```bash
[root@studentvm1 ~]# useradd -c "Student User 2" student2
[root@studentvm1 ~]# passwd student2
Changing password for user student2.
New password: <Enter new password>
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: <Enter new password>
passwd: all authentication tokens updated successfully.
```
2. **创建新组**:
```bash
[root@studentvm1 ~]# groupadd -g 5000 dev
```
3. **将现有用户添加到新组**:
```bash
[root@studentvm1 ~]# usermod -G 5000 student
[root@studentvm1 ~]# usermod -G 5000 student1
```
也可以使用 gpasswd 命令:
```bash
[root@studentvm1 ~]# gpasswd -M student,student1 dev
```
4. **查看 /etc/group 文件**:
```bash
[root@studentvm1 ~]# tail /etc/group
vboxsf:x:981:
dnsmasq:x:980:
tcpdump:x:72:
student:x:1000:
screen:x:84:
systemd-timesync:x:979:
dictd:x:978:
student1:x:1001:
student2:x:1002:
dev:x:5000:student,student1
```
5. **创建共享目录并设置权限**:
```bash
[root@studentvm1 ~]# cd /home ; mkdir dev ; ll
total 32
drwxr-xr-x 2 root root 4096 Feb 10 13:42 dev
drwx------. 2 root root 16384 Jan 17 07:29 lost+found
drwx------. 21 student student 4096 Feb 10 06:41 student
drwx------ 4 student1 student1 4096 Feb 10 09:28 student1
drwx------ 3 student2 student2 4096 Feb 10 13:06 student2
[root@studentvm1 home]# chgrp dev dev ; chmod 770 dev ; ll
total 32
drwxrwx--- 2 root dev 4096 Feb 10 13:42 dev
drwx------. 2 root root 16384 Jan 17 07:29 lost+found
drwx------. 21 student student 4096 Feb 10 06:41 student
drwx------ 4 student1 student1 4096 Feb 10 09:28 student1
drwx------ 3 student2 student2 4096 Feb 10 13:06 student2
```
6. **以 student 用户操作**:
尝试将 /home/dev 设置为当前工作目录,可能会失败,因为新的组成员身份未初始化。需要退出所有终端会话,注销并重新登录,启动新的终端会话来初始化新的组设置。
```bash
[student@studentvm1 ~]$ cd /home/dev
-Bash: cd: /home/dev: Permission denied
[student@studentvm1 ~]$ id
uid=1000(student) gid=1000(student) groups=1000(student)
```
重新登录后验证:
```bash
[student@studentvm1 ~]$ id
uid=1000(student) gid=1000(student) groups=1000(st
```
0
0
复制全文
相关推荐









