Linux基础 权限管理 命令

这里写自定义目录标题

权限管理

文件权限

Linux基础 权限管理 命令
如图,红色框圈起来的代表它的权限,后面第一个root表示它属于root这个用户,第二个root则表示属于这个组,那么这么一长串东西所表示的权限怎么看呢?别急,且听我慢慢道来~

  • 第1个字符代表文件类型
  • 第2~4个字符代表文件所有人的权限,就是用户自己拥有的权限
  • 第5~7个字符代表文件所属组的权限,就是在一个组里的其他用户拥有的权限
  • 第8~10个字符代表其他人的权限

拿上面这个举例来说,-(就是没有字母)代表它是一个普通文件,用户自己可读(r)可写(w),组内成员可读,其他人也可读。另外还有个x表示可执行

Linux基础 权限管理 命令
再说这个,b表示它是一个块设备。
Linux基础 权限管理 命令
这个d则代表它是一个目录。前面说了x表示可执行,对于目录来说就是能不能进入这个目录,要是进都进不来,还谈什么呢?一般这个权限都会有

权限修改

了解了权限之后,我们要是想改变权限能不能做到呢?当然可以!

chmod <a|u|g|o><+|-|=><r|w|x> filename
u表示用户,g表示组,o表示其他人,a表示所有人
+代表增加权限,-代表减去权限
r是读,w是写,x是可执行

举个例子,现在有一个文件,我们其他用户是可读的
Linux基础 权限管理 命令

现在,我们改一下它的权限,让其他人不可读,看图
Linux基础 权限管理 命令
现在,我们再用普通用户试一下,是不是看不到文件内容了呢
Linux基础 权限管理 命令

chmod 664 filename
r=4,w=2,x=1

还可以把这些字母看成数字,直接写三位的和就 ????
Linux基础 权限管理 命令

umask

我们发现在普通用户中创建文件(只能在它的用户主目录里)和 在超级用户中创建的文件权限是不一样的,为什么呢?
就是这个umask值不一样
普通文件的权限是怎么算的呢?777(满权限)减去umask值,然后操作系统为了安全再减去111后得到的

我们先看超级用户
Linux基础 权限管理 命令
再看普通用户,它的umask值是不是不一样,所以它们的权限有所区别
Linux基础 权限管理 命令

当然,umask值也是可以改的,改了之后创建文件的权限都不一样了
Linux基础 权限管理 命令

注意:目录的权限是直接777减去umask值即可
Linux基础 权限管理 命令

getfacl
setfacl

设置特殊权限
Linux基础 权限管理 命令
它属于其他用户,但是它不能读
Linux基础 权限管理 命令

用户属性修改

我们可以对文件的权限进行修改,当然也可以对它的属性进行修改

chown 用户名 文件名

直接换个拥有者,只有超户才有这个权限
Linux基础 权限管理 命令
还可以改回去
Linux基础 权限管理 命令

chgrp 组名 文件名

更改组
Linux基础 权限管理 命令

chown -R 用户名 目录
chgrp -R 组名 目录

-R表示处理主目录及其下的所有子目录,就一起改了,这里就不做演示了

chown 用户名.组名 文件|目录

可以用户和组一起修改
Linux基础 权限管理 命令