在linux系统中,权限就是指你这个用户能干什么,不能干什么,下边是有关权限的详细介绍:
权限有两种,一种是UGO,一种是ACL
一、UGO
1、UGO权限把文件的操作对象分为三类:u、g、o,分别代表user(所有者),group(组),other(其他人),所有人用a表示。
2、权限类型有:读(r=4)、写(w=2)、执行(x=1)。
3、权限设置
语法:# chmod 对象(u/g/o/a) 赋值符(+/-/=) 权限类型(r/w/x) 文本对像
(1)、使用字母
# touch 1.txt //创建文件1.txt
# chmod u+x 1.txt //属性主增加x权限
# chmod a=rwx 1.txt //所有人增加读写执行的权限
# chmod a=- 1.txt //所有人没有任何权限
# chmod ug=rw o=r 1.txt //属主属组等于读写权限,其他人只有读的权限
(2)、使用数字:读(r=4)、写(w=2)、执行(x=1)。
# chmod 755 1.txt
# ll
-rwxr-xr-x. 1 root root 0 8月 22 10:12 1.txt
(3)、更改属主/属组
语法:# chown 属性 文件 //设置一个文件属于谁,属主
# chown user1.user1 1.txt //更改文件的属主和属组
# chown user1 1.txt //只改属主
# chown .user1 1.txt //只改属组
语法:# chgrp 组名 文件 //设置一个文件属于哪个组,属组
# chgrp it 1.txt //改文件属组
# chgrp -R it 1.txt //该文件属组,-R是递归的意思
(4)、练习
针对it部门的访问目录设置权限,要求如下:
1. root用户和hr组的员工可以读、写、执行
2. 其他用户没有任何权限
操作思路:
1、创建组
2、创建用户
3、修改属主和属组
4、设置权限
二、基本权限ACL
1、与UGO权限的区别:
UGO设置文件的基本权限(rwx),ACL权限设置个人的权限,只能是一个人,组或其他人。
2、用法
# touch 2.txt
# getfacl 2.txt
# setfacl -m u:user1:rw /home/2.txt //增加用户user1的rw权限
# setfacl -m o::rw /home/2.txt //增加其他它用户rw的权限
# setfacl -x g:hr 2.txt //删除组hr的ACL权限
# setfacl -b 2.txt //删除所有人的ACL权限
更多命令请输入# man setfacl
3、高级用法
mask:acl权限中有个"mask"的选项,它就是ACL权限的最大权限,现在是rwx,当你设置某个用户或组的ACL权限时,要跟mask的权限“相交”之后产生的权限才是该用户的最终权限,也就是加入mask的最大权限是rx,但是你给st用户设置的是rwx权限,此时st用户它的权限只有rx的权限,因为与最大权限“相交”得出的结果就是rx。
# setfacl -m m::--- 2.txt //设置mask权限为无权限
# setfacl -m u:user1:rwx 2.txt //设置属主user1的权限为 rwx
# su - user1 //切换用户
# cat 2.txt //查看文件内容
-bash: 2.txt: 权限不够
所以,mask权限与有效权限取交集。
4、继承(default)
要求: 希望user1能够对/home以及以后在/home下新建的文件有读、写、执行权限
思路:
步骤一: 赋予user1对/home读、写、执行权限
# setfacl -m u:alice:r-x /home
步骤二: 赋予alice对以后在/home下新建的文件有读、执行权限 (使alice的权限继承)
d default 继承
# setfacl -m d:u:alice:r-x /home
三、思考
1、r、w、x权限对文件和目录的意义?
2、用户对文件有全部权限,能否删除该文件?
答:不可以,文件的去留在乎用户对其父系目录有没有W的权限,实验自己可以试一试。
3、普通用户能删除跟下的文件吗?
答:可以,所以请注意rm -rf的危险性,要做实验的话,请对当前系统拍一个快照。