1.13 Linux基本文件系统权限控制文件访问
Linux下的权限:
1、基本权限:
ls –l
第一个字符:文件类型
-代表普通文件
d代表目录
b代表块设备
l代表链接文件
c代表字符设备
后面是三位一个组合
分别代表user,group,other的权限,三位分别为read,write,execute权限.
chmod用来修改文件权限:
chmod有多重方式修改权限:
(1)字母方式:
=:代表完全匹配
+:代表增加权限
-:代表删除权限
例:
修改用户权限为完全拥有,组和其他用户权限为读和执行
修改用户other给一个写入权限
修改用户other删除一个写入权限
修改所有权限为读取权限,用a代表通配
(2)数字方式:
read:4 write:2 excute:1
例:

777分别代表user,group,other的权限
chmod –R 可以进行递归修改

权限优先顺序:
(1)如果UID匹配,就应用用户user的权限
(2)否则,如果GID匹配就应用group的权限
(3)如果都不匹配就应用other的权限

第二列:硬链接数(访问一个文件的多入口)
第三列:文件拥有者
第四列:文件拥有组
使用chown可以改变文件拥有者和拥有组
方框中前面为用户,后面为组,如果不需要改变用户冒号前为空

chgrp也可以改变组
在chgrp -R 可以递归修改文件夹中的组

2、特殊权限
setuid=SUID=(命令:chmod u+s)
针对文件,必须是应用程序,且拥有x权限,以拥有者决定
比如passwd这条命令,之前说修改密码其实就是修改文件,但是shadow什么权限都没有,因为passwd命令的user权限上多了s,普通用户修改密码时,其实是用了root的权限去改了自己的密码。如果需要任何人都不能修改自己密码除了root的话,执行chmod u-s /usr/bin/passwd,这些权限不能在编辑命令给,比如vi,vim

setgid=SGID=(命令:chmod g+s)
针对文件,必须是应用程序,且拥有x权限,以拥有组决定
针对目录,必须对目录wx,内部新创建的文件将和目录有相同组
通常针对目录,在目录中新创建的文件和目录将和外面的组拥有相同的组,组的继承

sticky bit=(命令:chmod o+t) 为了解决不合理权限(解决chmod 777)
针对目录,且他人必须有wx,只有root,拥有者才能删除权限
保证只有root和文件拥有者才能删除文件

3、默认权限
管理员在创建文件和文件夹的时候的默认权限
文件夹是755,文件是644

普通用户在创建文件和文件夹的时候的默认权限
文件夹是775,文件是664

默认权限是由umask来决定的

root和普通用户权限不一样
第一位:特殊权限
第二位:user权限
第三位:group权限
第四位:other权限
root的默认权限:文件777-022=755 文件夹666-022=644(文件夹不需要执行权限)022是后三位
普通用户的默认权限:文件777-002=775 文件夹666-002=664
权限正确的算法:022  换算二进制 000 010 010 取反 111 101 101和666的二进制与运算,得出110 100 100即644

4、高级权限 ACL

5、文件系统级权限