以root身份创建一个新文件,观察其默认的权限;然后用vi编辑该文件;将该文件权限改为只有用户可读,其他权限均无;以root身份创建一个脚本,该脚本使用cat命令在屏幕上显示前面创建文件的内容;将脚本文件按设置为所有用户可执行;分别以root和普通用户身份登录,执行脚本,观察结果;为cat文件加SUID权限,再重复前一步操作,观察结果,说明原因。
时间: 2023-07-16 16:15:57 浏览: 265
1. 以root身份创建一个新文件:
```
sudo touch testfile
```
观察其默认权限:
```
ls -l testfile
```
输出类似于:
```
-rw-r--r-- 1 root root 0 Dec 10 14:55 testfile
```
其中,`-rw-r--r--` 表示文件权限,第一个 `-` 表示类型,`rw-` 表示所有者(root)有读写权限,`r--` 表示所属组和其他用户只有读权限。
2. 使用vi编辑该文件,并将该文件权限改为只有用户可读,其他权限均无:
```
sudo chmod 400 testfile
vi testfile
```
在vi中输入一些内容并保存。
3. 以root身份创建一个脚本,该脚本使用cat命令在屏幕上显示前面创建文件的内容:
```
sudo touch testscript
sudo vi testscript
```
在vi中输入以下内容:
```bash
#!/bin/bash
cat testfile
```
并保存文件。
4. 将脚本文件设置为所有用户可执行:
```
sudo chmod a+x testscript
```
5. 分别以root和普通用户身份登录,执行脚本,观察结果:
- 以root身份执行脚本:`sudo ./testscript`,正常输出文件内容。
- 以普通用户身份执行脚本:`./testscript`,因为文件权限不足,无法打开文件,输出类似于:
```
cat: testfile: Permission denied
```
6. 为cat文件加SUID权限,再重复前一步操作,观察结果,说明原因。
```
sudo chmod u+s /bin/cat
```
- 以root身份执行脚本:`sudo ./testscript`,正常输出文件内容。
- 以普通用户身份执行脚本:`./testscript`,因为cat命令具有SUID权限,可以继承文件所有者的权限,因此可以打开文件并输出内容。
阅读全文