使用文字设定法和数字设定法,分别设置三种不同的特殊权限,并通过切换不同的用户,来实际验证不同特殊权限分别对文件和目录的不同作用
时间: 2023-03-20 14:01:21 浏览: 115
首先,文字设定法和数字设定法都是用来设置文件和目录权限的方式。其中,文字设定法是用英文单词来表示权限,数字设定法则是用数字表示权限。
我们可以使用如下命令来设置文件或目录的权限:
- 文字设定法:chmod [权限] [文件/目录名]
- 数字设定法:chmod [数字权限] [文件/目录名]
在 Linux 系统中,每个文件和目录都有三种不同的权限,即读取权限、写入权限和执行权限。对于文件来说,这些权限的作用分别是:
- 读取权限:允许用户查看文件内容。
- 写入权限:允许用户修改文件内容。
- 执行权限:允许用户执行文件中的命令。
对于目录来说,这些权限的作用分别是:
- 读取权限:允许用户查看目录中的文件和子目录。
- 写入权限:允许用户创建、删除或重命名目录中的文件和子目录。
- 执行权限:允许用户进入目录并访问其中的文件和子目录。
现在我们来分别设置三种不同的特殊权限,并通过切换不同的用户,来实际验证不同特殊权限分别对文件和目录的不同作用:
1. 设置 setuid 权限
setuid 权限可以使普通用户以文件所有者的身份来执行该文件。这样一来,就可以执行只有文件所有者才有权限执行的操作。
设置 setuid 权限的命令是:
- 文字设定法:chmod u+s [文件名]
- 数字设定法:chmod 4xxx [文件名]
其中,4 表示 setuid 权限,xxx 表示文件的权限。
我们可以创建一个只有 root 用户才有权限执行的文件,并设置 setuid 权限:
```
$ sudo touch test
$ sudo chmod 4755 test
```
然后,我们可以创建一个普通用户,并切换到该用户来执行该文件:
```
$ sudo adduser testuser
$ su - testuser
$ ./test
```
这样一来,我们就可以以 root 用户的身份来执行 test 文件了。
2. 设置 setgid 权限
setgid 权限可以使普通用户在执行该文件或访问该目录时,以文件所在组的身份来执行。
设置 setgid 权限的命令是:
- 文字设定法:chmod g+s [文件/目录名]
- 数字设定法:chmod 2xxx [文件/目录名]
其中,2 表示 setgid 权限,xxx 表示文件或目录的权限。
我们可以创建一个只有组成员才有权限执行的文件,并设置 setgid 权限:
```
$ sudo touch test
$ sudo chown root:staff test
$ sudo chmod 2755 test
```
然后,我们可以创建一个普通用户,并将该用户加入 staff 组中,再切换到该用户来执行该文件:
``