• 3.权限


    Liunx权限的概念

    Linux下有两种用户:

    1. 超级用户(root):可以再linux系统下做任何事情,不受限制。提示符是#
    2. 普通用户:在linux下做有限的事情。提示符是$

    切换用户:

    • 命令:su [用户名]
    • 功能:切换用户
    • su user su root su

    logout 退出

    Linux权限的管理

    文件访问者的分类

    • 文件和文件目录的所有者:u---User
    • 文件和文件目录的所有者所在的组的用户:g---Group
    • 其它用户:o---Others

    文件类型和访问权限

    在这里插入图片描述

    文件类型

    根据ll中的第一个字符展示文件类型 一共有10个字符

    Linux 系统不以后缀区分文件

    gcc != Linux

    gccLinux 的一个软件

    类型说明
    d文件夹(目录文件)
    -普通文件(文本、源代码、可执行程序、第三方静态库)
    l软连接(链接文件)
    b块设备文件,磁盘
    p管道文件
    c字符设备文件
    s套接口文件

    基本权限

    什么是权限?

    1. 约束人的(通过对人进行分类)
    2. 需要对应的事物具有特定的属性

    Linux 上对文件的权限

    1. 这个文件谁能访问,谁不能访问
    2. 该文件对应的应该具备的某种属性

    权限 = 人 + 事物属性

    Linux 中 人分为3类

    1. 文件的拥有者 owner
    2. 文件的所属组 grouper
    3. 文件的其他用户 other

    Linux 系统中 文件的属性分为

    1. r (可读)
    2. w(可写)
    3. x(可执行)

    为什么会有所属组?

    ​ 几个组成一个组,为了看组员彼此的代码,出现了所属组

    修改权限涉及到的方面(修改某些人对某些文件的属性)

    1. 修改文件的属性
    2. 修改人
      在这里插入图片描述
    权限说明
    读(r/4Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    写(w/2Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    执行(x/1execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    "一"表示不具有该项权限

    文件权限值的表示方法

    字符表示方法

    Linux表示说明
    r--只读
    --x仅可执行
    -wx可写和可执行
    rwx可读可写可执行
    -w-仅可写
    rw-可读可写
    r-x可读可执行
    ---无权限

    8进制数值表示方法

    权限符合(读写执行)八进制二进制
    r4100
    w2010
    x1001
    rw6110
    rx5101
    wx3011
    rwx7111
    ---0000

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

    chmod

    语法

    chmod [参数] 权限 文件名

    功能

    设置文件的访问权限

    root 不受约束

    chmod u-r myfile.txtmyfile.txt 将文件拥有者对该文件的读权限去掉

    chmod g-r myfile.txtmyfile.txt 将文件所属组对该文件的读权限去掉

    chmod o-r myfile.txtmyfile.txt 将文件其他用户对文件的读权限去掉

    chmod u+rx myfile.txtmyfile.txt 将文件拥有者加上对该文件的读和可执行权限

    chmod g+r myfile.txtmyfile.txt 将文件所属组加上对该文件的读权限

    chmod o+rwx myfile.txtmyfile.txt 将文件其他用户加上对该文件的所有行权限

    chmod u-wx,g-w,o-rwx myfile.txtmyfile.txt 将文件的拥有者减去写和可执行权限,所属组减去写权限,其他用户没有任何权限

    chmod u+rwx,g+rwx,o+rwx myfile.txtmyfile.txt 将文件的所有用户加上所有权限

    chmod u-rwx,g-rwx,o-rwx myfile.txtmyfile.txt 将文件所有用户的权限都删除掉

    other 
    - - -
    r w x
    有或没有 两种状态(2态) 0 / 1
    1 1 1 - 八进制 - 7
    能够用三个八进制数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    chmod 777 myfile.txt 给全部权限

    chmod 000 myfile.txt 不给任何权限

    chmod 333 myfile.txt 给所有人写和可执行权限

    chmod 444 myfile.txt 给所有人读权限

    chmod 500 myfile.txt 给所有者读和可执行权限,其他人没有权限

    chmod 三个八进制数字 文件

    chmod a=rw myfile.txt 把文件给所用用户都设置为可读和可写

    chmod a=r myfile.txt 把文件给所有用户都设置为可读 a = all

    选项

    选项说明
    R->递归修改目录文件的权限(只有文件的拥有者和root才可以改变文件的权限)

    chown

    语法

    chown [参数] 用户名 文件名

    功能

    修改文件的拥有者

    sudo chown ToodlesFate myfile.txt 提示权限,以root 的身份运行chown 把文件的权限给 ToodlesFate

    或者转换为root 用户,走到相应的位置,把文件赋给另一个人

    sudo chown root:root myfile.txt 把拥有者和所属组的权限全给root

    chgrp

    语法

    chgrp [参数] 用户组名 文件名

    功能

    修改文件或目录的所属组

    chgrp ToodlesFate myfile.txtmyfile.txt 文件的所属组赋给ToodlesFate

    选项

    选项说明
    -R递归修改文件或目录的所属组

    umask

    语法

    umask 权限值

    功能

    权限掩码 去掉umask 中出现的权限

    1. 普通文件的默认权限是 666
    2. 目录文件的默认权限是 777
    3. 默认权限 != 最终权限
    4. Linux 中最终权限 = 默认权限 去掉 umask 中存在的权限
    5. 去掉 = mask & ~ umask (按位取反 原来为1的位置为0 再按位与 原来为1的位置全部变成0)
    666 ->  110 110 110           110 110 110(mask)
    002 ->  000 000 010           111 111 101(~umask)
    -------------------           -----------
            110 110 100 (664)     110 110 100
    
    • 1
    • 2
    • 3
    • 4
    777 -> 111 111 111            111 111 111(mask)
    002 -> 000 000 010            111 111 101(umask)
    -------------------           ------------
           111 111 101 (775)      111 111 101
    
    • 1
    • 2
    • 3
    • 4

    为什么要有 umask ?

    让用户使用起来更方便 用户什么时候需要不同的文件,可以设置掩码的值来更改自动生成的权限

    umask 777 umask 666

    • 查看或修改文件掩码
    • 新建文件夹默认权限=0666
    • 新建目录默认权限=0777
    • 但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
      umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
    • 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用
      户默认为0002

    file指令

    语法

    file [选项] 文件或目录...

    功能

    辨识文件类型

    file dir

    选项

    选项说明
    -c详细显示指令执行过程,便于排错或分析程序执行的情形
    -z尝试去解读压缩文件的内容

    目录权限

    如果我想进入一个目录,需要什么权限:x(可执行权限)

    如果目录只没有r权限,允许进入,允许在该目录下创建(写入)一个文件,不允许查看

    如果目录只没有w权限,允许进入,允许查看文件,但不允许创建一个文件

    如果同时没有rw权限,允许进入,但是不允许创建和查看目录下的文件列表(注意:不是文件内容!!! 文件的内容是否可以查看,由文件自己决定!!!)

    Linux下一切皆文件

    目录也是文件

    文件 = 内容 + 属性

    目录的内容:目录里面保存的是部分文件的属性(包括文件名)

    • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中
    • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容
    • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

    默认目录的起始权限:777

    // 权限掩码:凡是在权限掩码中出现的权限,都不应该在最终权限中出现
    0002 
    000 000 000 010
    000 111 111 111
    ---------------
    000 111 111 101 5 (775)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    默认普通文件的权限:666

    002
    000 000 010
    110 110 110 
    ----------
    110 110 101 (664)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    粘贴位

    别人无法删除掉你的文件

    给目录加的

    法用ls等命令查看目录中的文件内容

    • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

    默认目录的起始权限:777

    // 权限掩码:凡是在权限掩码中出现的权限,都不应该在最终权限中出现
    0002 
    000 000 000 010
    000 111 111 111
    ---------------
    000 111 111 101 5 (775)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    默认普通文件的权限:666

    002
    000 000 010
    110 110 110 
    ----------
    110 110 101 (664)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    粘贴位

    别人无法删除掉你的文件

    给目录加的

  • 相关阅读:
    Java 使用 poi 和 aspose 实现 word 模板数据写入并转换 pdf 增加水印
    2023数维杯国际数学建模A题B题C题D题思路+模型+代码+完整论文
    UDS诊断网络层ISO15765-2(CAN)
    Ubuntu24多版本python解释器使用
    Windows下点击startup.bat启动tomcat出现乱码
    HTTPS 的加密过程
    【Linux系统编程十六】:(基础IO3)--用户级缓冲区
    【搭建NextCloud私有云盘服务】采用docker在linux上进行部署,内含nextCloud移植(迁移服务器)方法
    动态内存管理
    XSS详解
  • 原文地址:https://blog.csdn.net/m0_62513305/article/details/126215635