• Linux 权限学习


    shell命令以及运行原理

    Linux是一个操作系统,我们称为**“核心”,但是用户,不能直接使用核心**,而是通过核心的外壳程序shell),来与内核沟通。

    image-20220822155744126

    shell:命令行解释器

    • 将使用者的命令翻译给核心处理
    • 将核心的处理结果给使用者

    过程:

    用户的指令给shell,shell对用户的指令进行解析,解析指令给到内核

    内核对解析指令进行处理,处理后的结果给shell,shell对结果解析给到用户

    优点:防止用户对内核的破坏

    Linux权限的概念

    Linux用户:root、普通用户

    • 超级用户(#):root用户不受限制
    • 普通用户($):普通用户受限制

    su

    su -		//切换到root用户
    su 用户名    //切换普通用户
    
    • 1
    • 2

    whoami 查看当前用户

    Linux权限管理

    文件访问者的分类(人)

    • 文件的所有者:u
    • 文件的所有者所在的组的用户:g
    • 其他用户:o

    文件类型和访问权限(事物属性)

    image-20220822185047232

    如上图:

    • 文件类型为-是普通文件,文件类型为d是目录文件,Linux不以文件后缀区分文件类型
    • 在权限的前三位(rw-)为文件所有者的权限,权限的中间三位(rw-)为文件所属组的权限,权限的后三位为其他用户的权限

    文件类型

    -:普通文件,文本,源代码,可执行程序,第三方静态库
    d:目录文件
    l:链接文件
    p:管道文件
    b:块设备文件
    c:字符设备文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    基本权限

    1、读(r):对文件,具有读取文件内容的权限,对目录,有读取目录内文件列表的权限
    2、写(w):对文件,具有修改文件内容的权限,对目录,有,创建删除移动(剪切)目录内文件的权限
    3、执行(x):对文件,具有执行文件的权限,对目录,具有进入目录的权限
    4、'-'表示不具有该项权限
    
    • 1
    • 2
    • 3
    • 4

    文件权限值的表示方法

    Linux字符表示Linux 8进制数值表示说明
    r - -4只读
    - w -2仅可写
    - - x1仅可执行
    r w -6可读可写
    - w x3可写可执行
    r - x5可读可执行
    r w x7可读可写可执行
    - - -0不可读不可写不可执行

    文件访问权限的相关设置方法

    chmod

    设置文件的访问权限

    chmod 人 +/- 权限 文件名		//chmod u+w ./test.c
    chmod 三位8进制 文件名		   //chmod 664 ./test.c
    //-R		递归修改目录文件的权限
    //只有文件的拥有者和root才可以改变文件的权限(root不受限制)
    
    • 1
    • 2
    • 3
    • 4

    chown

    修改文件的拥有者

    chown 用户名 文件名		//chown user1 f1
        				    //chown -R user1 filegroup1
    
    • 1
    • 2

    chgrp

    修改文件或目录的所属组

    chgrp 用户组名 文件名
    
    • 1

    umask

    查看或修改文件掩码

    新建文件默认权限为0666(mask)

    新建目录默认权限为0777(mask)

    但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
    umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask(umask取反结果按位与mask)

    将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
    户默认为0002

    umask //查看
    umask 044 //设置
    
    • 1
    • 2

    粘滞位

    共享目录:

    linux下可以存在一些目录,拥有者和所属组是root,其他人允许以other身份对该目录下的文件进行读写删除,创建,linux自带的共享目录为tmp

    在共享目录下,可以设置其他用户不能写,不能读,但是防不住其他用户删除

    如果我还想在共享目录下,形成临时文件但是,不允许除了我之外的人删除,就引入了粘滞位

    粘滞位:

    chmod +t 目录			//(超级用户执行)
    //该目录下的文件只能被root,目录的拥有者,文件的拥有者删除
    
    • 1
    • 2

    但是防不住其他用户删除

    如果我还想在共享目录下,形成临时文件但是,不允许除了我之外的人删除,就引入了粘滞位

    粘滞位:

    chmod +t 目录			//(超级用户执行)
    //该目录下的文件只能被root,目录的拥有者,文件的拥有者删除
    
    • 1
    • 2
  • 相关阅读:
    Go 语言中的map和内存泄漏
    《网络安全笔记》第十二章:二进制基础
    喜报 | 实力亮相2023服贸会,擎创科技斩获领军人物奖&创新案例奖
    华为云AOM 2.0版本发布
    78. 子集
    计算机网络408考研 2021
    如何理解数字工厂管理系统的本质
    Flutter高仿微信-第36篇-单聊-语音通话
    【AI】第 2 章:从模型到生产
    1.NC4 判断链表中是否有环
  • 原文地址:https://blog.csdn.net/weixin_53230235/article/details/126512756