访问有三个权限:读,写,执行。read(r)write(w)execute(x)
read读权限的操作有:cat less head tail 等
write写权限的操作有:vim ,>,>>等
x执行权限的操作有:shell脚本,python编程
权限设置的命令:chmod 用来修改user group others(ugo)的权限
注意:chmod -R o=--- /abc 表示递归设置others的权限,以后在abc里创建的子目录others都没有任何的权限。
为了设置方便,引入了数字表示、
r=4,w=2,x=1,然后多个权限是用数字的求和。比如rwx=7,rw=6 ,---=0,chmod 777 相当于给ugo全部的权限。
目录创建出来都有默认的权限,why?取决用umask的值。默认umask是022,结合上面的。创建出来的新目录权限就是755(777-022),u拥有全部权限,g和o拥有r和x的权限。
权限说完了。就是归属问题了。
修改目录的归属人,归属组我们用到命令chown。例如chown zhangsan /abc改user为张三,chown :stugrp /abc 改属组为stugrp。user和group需要一起改的时候用命令:chown zhangsan:stugrp /abc
再谈谈特殊权限的设置。SGID和SUID,SGID是给属组一个特殊的权限,在属组的x位上用s表示。当属组有x权限,S要大写,反之,小写。当给了属组权限,这个目录下新建和文档都会继承此目录的属组身份。比如这个目录的属组是tom,那么新建的子目录属组也会是tom。
粘滞位,sticky bit权限,这个权限也很有意思。他是占用o其他人的执行x位。用t表示。当others有x权限就用T表示,反之小t表示。当加上了这个t权限的时候。别人就不能删除和修改不是自己创建的文件和目录了。例子:root创建了一个public目录。对所有人都有rw权限,tom在public可以任意修改创建文件,bob也可以。当没有加这个t权限给这个public目录的时候。tom创建的文件bob可以删除修改。当创建以后,tom不能修改删除bob创建的文件。
acl策略,用于操作更精准的策略。可以给到单独用户不同的权限,更加灵活方便、命令是setfacl
例:setfacl -m u:zhangsan:rx /abc 给张三这个用户有rx读写权限,对于abc这个目录。
特别的地方:setfacl也可以设置递归的策略。比如 setfacl -Rm u:zhangsan:rwx /abc (abc目录下还有aa,aa下还有bb,bb下有cc),这个时候只要是abc包括abc以下的所有子目录,zhangsan都需有rwx的权限。