【Linux之权限】提升篇

打印 上一主题 下一主题

主题 827|帖子 827|积分 2481

前言

在前两篇文章里,我们已经学习了Linux中权限的理论、实践和重点,接下来我们将进一步提升对Linux权限的全面认知。虽是拓展,其实还是重点。
本文内容并不多,那我们就开始吧。
目次的权限该怎样理解呢?



  • 假如我想进入一个目次,需要什么权限?
​ 和读权限没关系,和写权限也没关系。和x有关系。x对普通文件意味着执行权限,对目次意味着进出的权限。


  • 那r和w分别对目次意味着什么?
假如一个用户对目次没有r权限,在进入这个目次后,ls我们将得到这样的报错:

目次里的文件就相称于在目次里面,没有读权限就无法查看目次里面的内容。
但是我们可以写,也就是说可以在目次里创建文件

可以看到,都不会报错。
同样的,对于root来说,就算什么角色的权限都去掉了,root仍可以rwx。不受约束。


  • 默认环境下,我们新建一个目次,一般(对于拥有者)rwx权限都要有。
理解Linux多用户之间是怎么互相“隔离”的。


在Linux中,每新建一个普通用户,都会在home这个目次里,新建一个以这个普通用户为名的文件夹。
下次普通用户登录时,就默认在这个家目次里面。/home/naruto
我们还可以从上图看到,whb这个文件夹的拥有者和所属组就是本身,且只对全部者开放了rwx权限。这意味着任何用户,无法进入其他用户的家目次也无法读和写。这就是所谓的用户之间的“隔离”
缺省权限


我们可以发现,普通文件的默认权限是这样的:rw-rw-r–

而目次的默认权限是:rwxrwxr-x
缺省值的设置:

但是为什么我们创建时的初始值却不是这样的呢?
甚至对于不同人的linux,可能默认值又不一样:
这是由于体系里有一个权限掩码(不同人的linux可能不同)。umask可以查:

这里一个位是八进制的。第一个0是与用户相关的,我们不消考虑在内。也就是看002。
002的二进制是000 000 010,最终权限=起始权限&(~umask)
~umask是111 111 101,将其与初始权限111 111 111按位与得到111 111 101,转成八进制是775。
umask目标是什么?

凡是在umask中出现的权限,都不应该在最终权限中出现。
可以看到000 000 010里只有other的写权限为1,那么~就只有other的写权限为0,根据按位与,无论默认值other有没有写权限,最终生成的都不会有;同样,按位与后除了这一位都是1,也就是最终生成权限全凭初始的默认权限决定。
为什么要有umask?


  • 假如没有,一个文件创建时默认的权限由OS决定,无法在创建前举行修改。这是为了可以满意特殊的需求。写成体系可设置,不写死,更有机动性。
  • 特殊环境下,设置umask,可以控制文件的默认权限,让代码可控。(日后才会接触到)
怎么修改umask?

umask 0777 这样就能改
不过这种修改是一次性的,内存级的。当我重新打开,读取设置文件,会变归去。
=_=
本文到此结束,至此,【Linux之权限】这个系列也结束了。
祝大家开卷有益。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表