• 【Linux】粗谈权限


    背景知识

    我们日常口头讲的Linux操作系统,狭义来说只是指它的内核,广义上来说指它的内核加外壳(shell,配套的程序)。

    那么为什么一定要有外壳呢?shell外壳主要有以下两个功能

    1.命令行解释器

            将用户输入的指令解释给内核

            将内核处理的结果返给外壳,再由外壳返回给用户

    2.保护内核

    shell具体是怎么保护内核的?——父进程+子进程

    父进程:继续进行命令行获取并创建子进程,让子进程工作

    子进程:处理父进程传来的指令

    LInux区分文件类型,与后缀无关,和文件是否具有可执行权限有关

    Linux这个软件不分文件后缀,不代表gcc这个软件不分

    用户

    用户主要分为超级用户(root)和普通用户

    超级用户就是至高无上的存在,任意妄为,无视权限的存在

    普通用户可以用su或者su-来切换成超级用户,但是需要知道root账户的密码 

    su:单纯的账号切换,从超级用户切换成普通用户:su-用户名

    su-:重新登录root账号

    如果我们只有一条命需要提升权限并且频繁使用,这个时候再用su或者su-就比较麻烦了,这个时候只需要在命令前面加个sudo就可以——但是现在所处的账号需要被root账号授权

    权限

    在Linux中,权限是伴生文件的

    权限——也就是一件事是否可以被你做,直白点就是你有没有资格做某事的意思

    人分为拥有者从属者以及其他人

    事物属性分为读,写,执行

    第一列的字母代表文件类型,剩下的九个字母每三个为一个人的权限,从前往后分别为w,r,x

    以以上文件为例子

    l——代表该文件为链接文件,拥有者的权限为读写执行,从属者的权限为读写执行,其他人的权限为读写执行

    后面的两个用户从前到右依次为拥有者和从属者,没有其他人是因为其他人不重要而且很多

    这里的拥有者和从属者都为root

    文件类型

    chmod a +-权限缩写 文件名 对所有进行权限修改

    用户在匹配身份的时候只匹配一次

    • u:拥有者
    • g:拥有者同组用
    • o:其它用户
    • a:所有用户

    这里的权限缩写也可以用八进制来替代,如rwxrw-r--,存在字母即为1,-则视为0,所以就是764

    默认权限

    目录的默认权限为777,文件的默认权限为666

    但是最终的目录权限为775,文件的最终权限为664,这是为什么呢?

    最终的权限=默认权限&(~umask)

    umask是权限掩码,最终的权限=默认权限去掉权限掩码中出现的权限

    凡是在权限掩码中出现的权限都要在最终权限中被去掉

    umask的默认值为003,是可以修改的

    以上为文件默认权限666变成664的过程

    目录权限

    上面讲的大部分都是文件的权限,它的wrx我们是可以理解的

    但是目录文件也有对应的wrx,是目录可以被读,写,执行的意思吗?如果是的话有种很奇怪的感觉

    w:一个文件肯定是属于一个目录的,一个文件能不能被删除,能否新建文件都不由自己决定,而由该用户在该目录下有无w权限决定

    r:一个文件肯定是属于一个目录的,一个文件属性能否被查看,由该用户在该目录下有无r权限决定

    x:能否进入一个目录以内,由该用户在该目录下有无x权限决定

    粘滞位:chmod+t 文件名——给目录设置,防止同目录下的其他用户乱删

    总结

    以上为Linux权限的粗略总结,也以此篇开始Linux的学习,该系列会持续更新,希望各位多多支持,如有错误也希望及时指出!

  • 相关阅读:
    MAC OpenGL报错
    前端如何下载后端传输的文件
    Springboot整合ActiveMQ
    python编程:创建 SQLite 数据库和表的图形用户界面应用程序
    ASEMI整流桥KBPC3510W参数特性,KBPC3510W封装尺寸
    Kotlin(五) 循环语句
    机器学习中的类不平衡问题
    【Android系统蓝牙开发】蓝牙基础知识-蓝牙核心系统架构
    Abp框架Web站点的安全性提升
    99-104-Hadoop-MapReduce-排序:
  • 原文地址:https://blog.csdn.net/fight_for1/article/details/132725052