环境:RHCE学员练习机
列出文件和文件夹权限
权限的分类
- r(读)【数字表示4】
- w(写)【数字表示2】
- x(执行)【数字表示1】
查看权限的方法
- 文件
ls -l 文件名
stat 文件名
- 目录
ls -ld 目录
权限的表示
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r(读) | 可以读取文件内容【cat】 | 可以列出目录的内容【ls】 |
w(写) | 可以更改文件内容【vim】 | 可以创建或删除目录中的文件 |
x(执行) | 可以作为命令执行文件【./x】 | 可以访问目录内容【cd】 |
更改文件权限和拥有者
更改文件权限
chmod NNN filename # 数值法修改权限
chmod o+r,u+x filename # 符号方式修改权限
修改拥有者
chown mike:root xx.txt # 修改文件属主为mike 属组为root
chown mike xx.txt # 修改文件属主为mike
chown :mike xx.txt # 修改文件属组为mike
chown -R mike # 递归修改目录下所有文件的属主
特殊权限
- SUID【u+s】【数字表示4】
- 为可执行 (有x权限的)文件设置,权限字符为
s
- 其他用户执行该文件时,将拥有所有者用户的权限
- 为可执行 (有x权限的)文件设置,权限字符为
- SGID【g+s】【数字表示2】
- 为可执行(有x权限的)目录设置,权限字符为
s
- 目录中创建目录或文件会自动继承父目录的所属组
- 共享中常用
- 为可执行(有x权限的)目录设置,权限字符为
- 粘滞键权限(Sticky)SBIT【数字表示1】
- 为公共目录(权限为777的)设置,权限字符为
t
- 用户不能删除该目录中其他用户的文件,但是可以删除自己的
- 为公共目录(权限为777的)设置,权限字符为
SUID权限示例
useradd mike # 新建普通用户mike
echo mike@123 | passwd --stdin mike # 为mike设置权限
ssh mike@localhost cat /etc/shadow # 通过ssh连接到本机,以mike的身份执行 cat /etc/shadow
# cat: /etc/shadow: Permission denied 权限被拒绝
whereis cat # 查找cat命令的位置
ll /usr/bin/cat # 查看cat命令的相关属性信息
# 一共有两种方法添加特殊权限
1、chmod u+s /usr/bin/cat
2、chmode 4755 u+s /usr/bi/cat
ssh mike@localhost cat/etc/shadow
删除SUID权限
1、chmod u-s /usr/bin/cat
2、chmod 755 /usr/bin/cat
目录下创建文件自动继承目录属组–SGID
mkdir /share # 创建一个目录
chmod 777 /share # 设置为公共目录,即所有人都可以读写
touch /share/root.txt # 使用root用户在文件夹内新建文件
chown :student /share # 修改文件夹的所属组
# 添加SGID权限
1、chmod g+s /share
2、chmod 2777 /share
ssh mike@localhost touch /share/mike.txt
删除GUID权限
1、chmod g-s /share
2、chmod 777 /share
只有拥有者和root可以删除修改(主要针对目录)–stick
mkdir /student # 新建目录
chown student: /student # 修改用户所属主和所属组(这个时候不能设置权限为777,修改了权限会导致stick权限失效)
# 设置权限
1、chmod o+t /student
2、chmod 1777 /student
# 使用mike用户在文件夹内添加文件
ssh mike@localhost touch /student/mike.txt
# 使用root用户在文件夹内添加文件
ssh root@localhost touch /studnet/root.txt
# 使用student用户在文件夹内添加文件
ssh student@localhost touch /student/student.txt
删除stick权限
1、chown o-t /student
2、chown 755 /student