• 【Linux常用命令11】Linux文件与权限详解


    权限

    r :读权限,用数字4表示
    w :写权限,用数字2表示
    x :执行权限,用数字1表示

    常用权限

    644:代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
    755:代表所有者拥有读、写和执行权限,而所属组和其他人拥有读、执行权限。
    777:代表所有者、所属组和其他人都拥有读、写权限。

    文件的特殊权限:SUID、SGID、SBIT

    SUID

    SUID:是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。

    查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。

    如果原本的权限是rw-呢?如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。

    SGID

    SGID主要实现如下两种功能:
    让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)。

    在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。例在目录设置SGID,则用户在该目录创建文件,文件的默认的用户组将由用户自己的基本用户组变为目录的所属组,使得同组内的其他用户都能访问该文件。

    SBIT

    SBIT:确保用户只能删除自己的文件,而不能删除其他用户的文件。如果赋予了SBIT权限,则其他用户中的可执行权限位会从x-变为t/T

    chattr:用于设置文件的隐藏权限

    chattr [选项] 文件
    参数  含义
    -R  递归处理目录下的所有文件
    -v  设置文件或目录版本
    -V  显示指令执行过程
    +   开启文件或目录的该项属性
    --  关闭文件或目录的该项属性
    =   指定文件或目录的该项属性
    示例:
    用chattr命令防止系统中某个关键文件被修改(加锁):
    [root@linuxcool ~]# chattr +i /etc/resolv.conf
    解锁:
    [root@linuxcool ~]# chattr -i /home/omd/h.txt
    让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
    [root@linuxcool ~]# chattr +a /var/log/messages
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    chmod:用于修改文件或目录的访问权限

    该命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

    chmod [选项] 权限模式 文件或目录
    参数  含义
    -c   若该文件权限确实已经更改,才显示其更改动作
    -f   若该文件权限无法被更改也不显示错误讯息
    -v   显示权限变更的详细资料
    -R   对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
    ​
    #用户身份
    u :目录或者文件的当前的用户
    g :目录或者文件的当前的群组
    o :除了目录或者文件的当前用户或群组之外的用户或者群组
    a :所有的用户及群组
    ​
    #赋予方式
    + :加入权限
    - :减去权限
    = :设置权限
    示例:
    将档案 file1.txt 设为所有人皆可读取:
    [root@linuxcool ~]# chmod a+r file.txt
    将目前目录下的所有文件与子目录皆设为任何人可读取 :
    [root@linuxcool ~]# chmod -R a+r *
    将 file.txt 设定为只有该文件拥有者可以执行:
    [root@linuxcool ~]# chmod u+x file.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    chown:用于修改文件和目录的用户和所属组

    chown [选项] 所有者:所属组 文件或目录
    参数  含义
    -R   对目前目录下的所有文件与子目录进行相同的拥有者变更
    -c   若该文件拥有者确实已经更改,才显示其更改动作
    -f   若该文件拥有者无法被更改也不要显示错误讯息
    -h   只对于连结(link)进行变更,而非该 link 真正指向的文件
    -v   显示拥有者变更的详细资料
    --help  显示辅助说明
    --version   显示版本
    示例:
    将test.txt文件用户组与用户都改为bin:
    [root@linuxcool ~]# chown bin:bin test.txt  
    将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup:
    [root@linuxcool ~]# chown -R linuxcool:linuxcoolgroup *
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    chgrp:用于修改文件和目录的所属组

    chgrp [选项] 所属组 文件或目录
    参数  含义
    -c   效果类似”-v”参数,但仅回报更改的部分
    -f   不显示错误信息
    -h   对符号连接的文件作修改,而不更动其他任何相关文件
    -R   递归处理,将指定目录下的所有文件及子目录一并处理
    -v   显示指令执行过程
    --reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
    改变文件的群组属性:
    [root@linuxcool ~]# chgrp -v linuxcool file
    将/usr/linuxcool及其子目录下的所有文件的用户组改为cool:
    [root@linuxcool ~]# chgrp -R cool /usr/linuxcool
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    C++类和对象(二)(类对象的存储方式)
    DSA之排序(3):交换排序,简单选择排序,归并排序,基数排序
    AQS层层剖析
    SpringBoot实用开发之热部署
    婚恋交友系统源码-交友APP小程序H5开发-源码交付,支持二开-实名制交友更放心!
    机器学习中的常见分类方法汇总
    MQ消费堆积问题解决思路
    Spring【Bean的作用域与生命周期】
    Docker:自定义镜像
    并发中级(第一篇)
  • 原文地址:https://blog.csdn.net/qq11771258/article/details/132894275