文件权限和所属用户
Linux 可以建立多个用户,可以设置每个用户拥有不同的权限,使用ll命令可以查看文件的权限分配
画蓝线的是文件所属于的用户
画红线的就是test.txt的权限分配了,权限三个字符为一组,一共十个字符
第1个字符为-时表示这是一个文件,为d时表示这是文件夹
第2到第4字符表示文件拥有者的权限,就是创建文件的用户,用u标识
第5到第7字符表示文件所属群组的权限,就是跟创建文件用户是一个组的,用g标识
第8到10字符表示其他用户的权限,用o标识
r :读取权限
w :写入权限
x : 执行权限
- :无权限
权限 | 对文件的影响 | 对目录的影响 |
r(读取) | 可读取文件内容 | 可列出目录内容 |
w(写入) |
可修改文件内容 | 可在目录中创建删除内容 |
x(执行) | 可作为命令执行 | 可访问目录内容 |
目录必须拥有x权限,否则无法查看内容 |
Linux也可以使用二进制表示权限
- rwx:111
- r-x:101
- rw-:110
- r--:100
转换为十进制就是
- rwx = 111 = 4+2+1 = 7
- r-x = 101 = 4+0+1 = 5
- rw- = 110 = 4+4+0 = 6
- r-- = 100 = 4+0+0 = 4
可以用r=4,w=2,x=1来表示权限
Linux目录默认权限为755
Linux文件默认权限为644
ll命令
命令介绍:查看文件权限
ll test.txt # 查看文件的权限
ll # 查看当前文件夹所有内容的权限
chmod命令(有限制)
命令介绍:修改文件的操作权限
限制:需要是文件的拥有者或者是超级管理员root
chmod u=rw,g=r,o=- test.txt # 设置权限,文件拥有者拥有查看和修改的权限,跟文件拥有者同组的用户拥有查看的权限,其他人没有权限
chmod u+r,u+w,o-r,o-w test.txt # 设置权限使用加号和减号设置
chmod o+w demo01 -R # 设置文件夹权限,递归设置所有子目录
chmod命令(二进制权限)
chmod -R 755 demo01 # 授予u为rwx权限,g为r-x权限,o为r-x权限 chomd -R 775 demo01 # 授予u为rwx权限,g为rwx权限,o为r-x权限
Linux特殊权限
权限 | 对文件的影响 | 对目录的影响 |
suid | 以文件的所属用户身份执行,而非执行文件的用户 | 无 |
sgid | 以文件所属组身份去执行 | 在该目录中创建任意新文件的所属组与该目录的所属组相同 |
sticky | 无 | 对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户拥有的文件 |
特殊权限数组标识
- suid=4
- sgid=2
- sticky=1
Linux特殊权限使用方法
chmod u+s demo01.txt # suid使用方法 chmod g+s demo01.txt # sgid使用方法 chmod o+t demo01.txt # sticky 使用方法 # 也可以使用数字方式添加权限 chmod 4755 demo01.txt
chown命令(有限制)
命令介绍:修改文件所属组或用户
限制:需要拥有root权限才能使用
chown adam:adam demo01 -R # 修改文件夹及子目录的拥有者为adam用户
chown adam:adam test.txt # 修改文件的拥有者