• 【Linux】权限管理与相关指令


    1.权限、文件权限、用户

      通过一定条件,拦住一部分人,给另一部分权利来访问资源,比如Vip、门禁等。

    (1)权限 = 用户角色 + 文件属性。

    (2)Linux中的用户:root超级管理员、普通用户。

    (3)对于文件来说有三种角色:user 所有者、group 所属组用户(所有者所在组的用户)、others 其它用户。“组”的这种权限管理概念,主要是多人协作时有用。
    在这里插入图片描述

    文件权限的理解以及对应八进制数值表示、设置目录为粘滞位

    • r(4):读权限,用户能查看指定目录内的文件;读取文件内容;
    • w(2):写权限,用户能在目录内创建、移动、修改和删除文件;修改文件内容;
    • x(1):执行权限,用户可以进入这个目录;可以执行文件;
    • -:表示不具有权限;
    • rw(6):读写权限;
    • wx(3):写和可执行;
    • rwx(7):可读可写可执行;
    • —:三个‘-’号表示该用户无任何权限。

    对于x可执行权限的理解:拥有可执行权限!=可执行,可执行==具有可执行权限+文件是可执行文件。

    • 对一个目录或文件无x权限,意味着无法cd到目录,无法在目录下执行命令;也无法执行一个可执行文件;

    • 对一个目录或文件无r权限,意味着无法用ls查看目录内有哪些文件,也不能用cat读取文件内容;

    • 对一个目录或文件无w权限,意味着无法在这个目录创建文件,也无法删除、编辑文件。

    有几点要注意:目录有-r权限,不代表可以进入目录读取文件,这一点是-x控制的而不是-r。目录具有-x权限,没有-r权限,则可以cd进入这个目录,也可以在这个目录下执行命令;但由于没有-r权限,即使可以执行ls命令,也任然无法读取目录下有哪些文件或目录。

    但有一点并不科学,只要用户有目录的写权限,那就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限,例如张三创建的文件,凭什么李四能删除掉。一个文件能不能被删除,与用户是否有这个文件的写权限无关,只要有这个文件所在目录的写权限,即使是普通用户也可以为所欲为,为了解决这个问题,Linux引入了粘滞位

    chmod +t 目录 设置目录为粘滞位,该目录下的文件只能由超级管理员、目录的所有者或文件的所有者删除。

    多个Linux用户协作,如果想实现多个用户文件信息共享,注意不能在任何一个用户家目录里面创建文件来共享(只有拥有者对家目录有权限),而是在系统的非用户目录下创建共享目录,并且对other用户放开所有权限。

    但这样还是会出问题,比如张三在这个共享目录创建了一个文件,这个文件张三只想给李四看,王五就不爽了把这个文件删了,所以需要使用粘滞位来防止这种情况。不开放写权限也可以解决问题,但是这样一来其它用户就无法再共享目录中创建文件,那就无法做到共享了。

    文件类型

    • d:文件夹(目录);
    • -:普通文件;
    • l:软链接(类似Windows的快捷方式打开软件);
    • b:块设备文件:硬盘、光驱;
    • p:管道文件;
    • c:字符设备文件:屏幕显示器;
    • s:套接口文件。

    Windows系统通过后缀区分文件类型,但是Linux不是以后缀区分,也就是Linux的文件不需要后缀。但我们习惯使用Windows,学习Linux创建文件也习惯加上后缀让我们自己好区分。

    虽然Linux文件不需要后缀,但不是说Linux文件不需要文件后缀,比如在Linux使用gcc编译器变成C/C++文件,那gcc编译器就会区分了,如果不是.c或.cpp结尾,没办法编译。

    2.权限相关的常用指令

    su

    su:切换超级用户
    su [用户名]:切换用户

    会提示输入密码。

    超级用户的命令提示符是#,普通用户是$。

    sudo

    给任何指令提权,以root的身份执行:sudo 后接任何指令

    需要输入你的密码,不是root用户的密码,很奇怪!

    chmod

    修改文件权限,只有文件的拥有者和root用户可以修改文件权限。

    -R 递归修改目录权限

    +号增加权限,-号减少权限,=号赋予权限

    u:user,即所有者
    chmod u+rwx filename
    chmod u-rwx filename

    g:group,即所属组
    o:other,即其它用户
    a:all,所有用户

    普通用户如果对这个文件没有相应权限,即使这个文件的所有者是你,那也无法执行相应操作!
    在这里插入图片描述
    只有root不受权限约束!

    使用权限数值修改权限:
    chmod 744 fimename
    第一个7即文件拥有者可读可写可执行;
    第二个4即所属组成员可读;
    第三个4即其它用户可读。

    chown

    修改文件或目录的拥有者。

    -R 递归修改目录下的文件所属者

    chown username filename

    chown zhangsan test.c

    chgrp

    修改文件或目录的所属组

    -R 递归修改目录下的文件所属组

    chgrp [-R] 用户组 文件名

    umask

    查看、修改或设置文件掩码,超级管理员用户的默认文件掩码一般是0022,普通用户是0002

    新建文件的默认权限是0666,新建目录的默认权限是0777。但创建后的文件或目录不是这个默认权限值,因为会受到umask文件掩码的影响,实际上创建文件或目录的权限是:默认权限 & ~umask,按位取反后的umask文件掩码,按位与文件或目录的默认权限。

    也可以不用这么麻烦去算,直接把默认权限减去文件掩码就能得到创建后的权限,不过要记住权限值的原理并不是相减得到,而是上述说的默认权限 $ ~umask

    umask 查看
    umask 044 设置或修改为044

    whoami

    显示当前登录用户

    file

    显示文件类型

  • 相关阅读:
    ArcGIS: 第二届全国大学生GIS技能大赛(广西师范学院)详解-下午题
    关于elementt的upload图片上传标签的解读,上传视频。上传大文件切片——生成一个哈希值,Message的消息提示。
    Apache 服务器的搭建和配置
    基于javaweb简单的在线考试系统
    程序员基础能力系列
    图论的小技巧以及扩展
    .Net Core Aop之IResourceFilter
    JAVASE总结作业----内部类、static关键字、final
    软件项目管理 7.4.2.进度计划编排-关键路径法
    第三讲 Gradient Tutorial梯度下降与随机梯度下降
  • 原文地址:https://blog.csdn.net/m0_52602233/article/details/140388299