【Linux】权限

文章目录

  • 更改文件的拥有者
  • Linux下的文件类型
  • 默认起始权限
    • 目录文件的rwx的意义
    • 默认起始权限及其算法
  • 粘滞位

更改文件的拥有者

上一篇博客我们讲到了如何修改各种角色的权限,那么我如果想改变一个文件的拥有者或所属组应该怎么办呢?
普通用户肯定是改变不了的,因为普通用户如果可以改变的话那万一一个普通用户不断给另一个普通用户创造文件,那就不可控了。要不然用sudo,要不然用root账号
比如说我现在这个Linux系统有两个普通用户,一个是people,一个是user100,现在有一个这样的文件,拥有者和所属组都是people,如果想改变文件的拥有者,就可以切换成root用户,用下面的指令
【Linux】权限_第1张图片
改变所属组的话也简单
【Linux】权限_第2张图片
当然,我们也可以同时改变拥有者和所属组
【Linux】权限_第3张图片

Linux下的文件类型

我们已经知道文件属性的前边十个字母中的后九个字母表示拥有者所属组和other的读写执行权限,那么第一个字母表示什么呢?它表示文件类型,它分别有如下的选择
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
其中前两个是我们比较常见的,-就包括我们平常所见的文本文件,源代码,图片,视频,可执行的我们平常基本上能见到的文件;d就更不用说了,就是我们的目录文件;b表示block,是块设备文件,比如说内存块,支持随机访问的文件;c表示char;还有一种上面表格没有提到的就是管道文件,它的字母是p,这个我们一般用于一个终端通过这个文件向另一个终端发信息。
总之,有哪些文件不是关键,而我们要知道的是Linux系统中的文件类型与后缀无关,我这里只是说的Linux系统,不代表系统之上的工具或者是命令等与后缀无关
因为:
1.工具需要,我们使用比如gcc等文件时,它是要识别文件的后缀的
在这里插入图片描述
比如说我写的c代码的后缀是txt,那么gcc是不能识别的,但是当我改了后缀后就可以识别了
【Linux】权限_第4张图片
2.人需要,因为我们也不能记住每个文件中具体都是什么类型的,这样添加一下后缀我们就可以很清楚的看出文件里边存的是什么类型
我们如果想要查看文件的更具体的类型的话可以用

file 文件名

在这里插入图片描述
在这里插入图片描述

默认起始权限

目录文件的rwx的意义

我们已经知道了一个普通文件它的读写执行大概是什么样的效果,那么目录文件也有rwx权限,那么它们对应的是什么效果呢
首先进入一个目录,需要x权限,就相当于执行一个目录文件不就是打开这个目录文件吗;r是能否看到目录文件中的各个文件的文件属性
在这里插入图片描述
我们可以看到,对于一个没有读权限的目录文件,我们虽然可以进入文件,但是我们并不能看到目录文件中的其他文件的属性w表示能否在目录文件中创建,删除和修改其中文件的属性。这里说一下删除删除这个文件跟这个文件本身的权限没有关系,跟这个文件之外的目录文件有没有写权限有关系,所以即使是root创建的文件,我只要是有权限,我也是可以删除的
【Linux】权限_第5张图片
这就表明,对一个目录文件没有写权限,我就不能修改其中文件的文件属性

默认起始权限及其算法

当我们新创建一个普通文件或者目录文件时,系统基本上就确定了三种角色的三种权限是什么那么系统是怎么确定的呢?我们先来看一下系统确定的权限都是多少
在这里插入图片描述
根据我们上个博客学的八进制来看,目录文件的默认起始权限是775,普通文件的默认起始权限是664,其实这也是有道理的,因为目录文件肯定要让人打开,所以默认会有x权限,而普通文件一般不是可执行文件,所以是没有x权限的,普通文件也不让other去改,这也是为了文件的安全考虑的
那么这到底是怎么算出来的呢?就是起始权限去掉umask(权限掩码)就是最终的权限,这里的去掉并不是简单的减法,而是如果我要去掉某个权限的话是有这个权限就去掉,没有就不管。
转换成算式的话就是

起始权限 &~umask) = 最终权限

这个umask我们也是可以查看并且修改
【Linux】权限_第6张图片
当我们查看umask时,最前边的0把它看成八进制的标志就行,后边才是我们的权限掩码,所以我们就可以用逆运算算出起始权限,普通文件就是666,目录文件就是777
我们也知道,每个用户都是有家目录的,我们可以看到家目录的权限是这样的
在这里插入图片描述
普通用户全都是只对拥有者开放全部权限,这也是合理的,每个用户的家目录都只有自己使用,这样的权限当然和合理

粘滞位

粘滞位的由来是什么呢?比如说people这个普通用户想给user100这个用户分享一些文件,总不能分享到家目录吧因为w权限一旦开放的话,就可以任意的删掉user100中的文件,显然这是有风险的。所以这是就产生了一个共享目录,就是/tmp这个绝对路径下的这个目录,这个目录对每个人都开放w权限,这样每个人都可以在其中创建文件,当然也能删除,所以就在这种背景下创建了粘滞位,就是在共享目录下不让删除别人的文件
在这里插入图片描述
这里左边十个字符中的最后一个字符t我们从未见过,这就是粘滞位,它既有x的意义,也有其他的限制:就是其中的文件只有root和文件的所有者才可以删除,改变文件的所有者看我们的这篇博客的最前边

你可能感兴趣的:(linux,运维,服务器,权限,文件,粘滞位)