Linux基础 权限管理 命令
权限管理
文件权限
如图,红色框圈起来的代表它的权限,后面第一个root表示它属于root这个用户,第二个root则表示属于这个组,那么这么一长串东西所表示的权限怎么看呢?别急,且听我慢慢道来~
- 第1个字符代表文件类型
- 第2~4个字符代表文件所有人的权限,就是用户自己拥有的权限
- 第5~7个字符代表文件所属组的权限,就是在一个组里的其他用户拥有的权限
- 第8~10个字符代表其他人的权限
拿上面这个举例来说,-(就是没有字母)代表它是一个普通文件,用户自己可读(r)可写(w),组内成员可读,其他人也可读。另外还有个x表示可执行
再说这个,b表示它是一个块设备。
这个d则代表它是一个目录。前面说了x表示可执行,对于目录来说就是能不能进入这个目录,要是进都进不来,还谈什么呢?一般这个权限都会有
权限修改
了解了权限之后,我们要是想改变权限能不能做到呢?当然可以!
chmod <a|u|g|o><+|-|=><r|w|x> filename
u表示用户,g表示组,o表示其他人,a表示所有人
+代表增加权限,-代表减去权限
r是读,w是写,x是可执行
举个例子,现在有一个文件,我们其他用户是可读的
现在,我们改一下它的权限,让其他人不可读,看图
现在,我们再用普通用户试一下,是不是看不到文件内容了呢
chmod 664 filename
r=4,w=2,x=1
还可以把这些字母看成数字,直接写三位的和就 ????
umask
我们发现在普通用户中创建文件(只能在它的用户主目录里)和 在超级用户中创建的文件权限是不一样的,为什么呢?
就是这个umask值不一样
普通文件的权限是怎么算的呢?777(满权限)减去umask值,然后操作系统为了安全再减去111后得到的
我们先看超级用户
再看普通用户,它的umask值是不是不一样,所以它们的权限有所区别
当然,umask值也是可以改的,改了之后创建文件的权限都不一样了
注意:目录的权限是直接777减去umask值即可
getfacl
setfacl
设置特殊权限
它属于其他用户,但是它不能读
用户属性修改
我们可以对文件的权限进行修改,当然也可以对它的属性进行修改
chown 用户名 文件名
直接换个拥有者,只有超户才有这个权限
还可以改回去
chgrp 组名 文件名
更改组
chown -R 用户名 目录
chgrp -R 组名 目录
-R表示处理主目录及其下的所有子目录,就一起改了,这里就不做演示了
chown 用户名.组名 文件|目录
可以用户和组一起修改