美文网首页读书笔记——L...
Linux Chapter05——用户身份与文件权限

Linux Chapter05——用户身份与文件权限

作者: So_ProbuING | 来源:发表于2023-11-25 21:19 被阅读0次

    用户分类

    • 管理员 UID为0
    • 系统用户 UID 为1~999
    • 普通用户 UID从1000

    id

    id命令用户显示用户的详细信息

    id 用户名
    

    useradd

    useradd用于创建新用户

    useradd[参数] 用户名
    
    • -d 指定用户的家目录
    • -e 账户的到期时间
    • -u 指定该用户的默认UID
    • -g 指定一个初始的用户基本组
    • -G 指定一个或多个扩展用户组
    • -N 不创建与用户同名的基本用户组
    • -s 指定该用户的默认Shell解释器
    [root@linuxprobe ~]# useradd linuxcool
    [root@linuxprobe ~]# id linuxcool 
    uid=1007(linuxcool) gid=1007(linuxcool) groups=1007(linuxcool
    

    groupadd

    groupadd用于创建新的用户组

    groupadd[参数] 群组名
    

    usermod

    usermod用于修改用户的属性

    usermod[参数] 用户名
    
    • -c 填写用户账户的备注信息
    • -d -m 可重新指定用户的家目录并自动把旧的数据转移过去
    • -e 设置账户的到期时间
    • -g 变更所属用户组
    • -G 变更扩展用户组
    • -L 锁定用户禁止其登录系统
    • -U 解锁用户,允许其登录系统
    • -s 变更默认终端
    • -u 修改用户的UID

    passwd

    passwd用于修改用户密码、过期时间

    passwd[参数] 用户名
    
    • 普通用户只能使用passwd命令修改自己的系统密码
    • root管理员则有权限修改其他所有人的密码,并且root管理员在Linux系统中修改自己或他人的密码时不需要验证旧密码
    • -l 锁定用户 禁止其登录
    • -u 解除锁定
    • --stdin 通过标准输入修改用户密码
    • -d 使该用户可用空密码登录系统
    • -e 强制用户在下次登录时修改密码
    • -S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称

    userdel

    userdel命令用于删除已有的用户账户

    userdel[参数]用户名
    
    • -f 强制删除用户
    • -r 同时删除用户及用户家目录

    文件权限与归属

    Linux系统中,每个文件都有归属的所有者和所属组,并且规定了文件的所有者、所属组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限
    文件的可读、可写、可执行权限r、w、x可分别用数字4、2、1来表示,文件所有者、文件所属组及其他用户

    文件权限的字符与数字表示
    • 7:可读、可写、可执行(4+2+1)
    • 6:可读、可写
    • 4:可读
      排在权限前面的减号-是文件类型,减号表示普通文件。常见的文件类型为
      • 普通文件
    • d 目录文件
    • l 链接文件
    • p 管道文件
    • b 块设备文件
    • c 字符设备文件

    文件的特殊权限

    SUID

    SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效)
    在查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x变成了s就意味着该文件被赋予了SUID权限。如果原本的权限是rw-,如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S

    SGID

    SGID特殊权限有两种应用场景:

    • 当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限。当对目录进行设置时,让目录内新创建的文件自动继承该目录原有用户组的名称

    chmod

    chmod命令用于设置文件的一般权限和特殊权限

    chmod[参数] 文件名
    

    chown

    chown命令用于设置文件的所有者和所有组

    chown 所有者:所有组 文件名
    
    • -R 表示针对目录的递归操作

    SBIT

    SBIT特殊权限可确保用户只能删除自己的文件,不能删除其他用户的文件
    当模流被设置为SBIT特殊权限位红藕,文件的其他用户权限部分的x执行权限就会被替换成t和T(原本有x执行权限则会写成t,原本没有x执行权限则会写成T)

    SUID、SGID、SBIT权限设置参数

    • u+s 设置SUID权限
    • u-s 取消SUID权限
    • g+s 设置SGID权限
    • g-s 取消SGID权限
    • o+t 设置SBIT权限
    • o-t 取消SBIT权限

    文件的隐藏属性

    Linux系统中的文件除了一般的特殊权限之外,还有一种隐藏权限。即被隐藏起来的权限默认情况下不能直接被用户发觉
    隐藏的权限用常规的ls 是无法被查看的,查看隐藏权限的专用设置命令是chattr,专用查看命令是lsattr

    chattr

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

    chattr[参数]文件名称
    

    如果想要把某个隐藏哦功能添加到文件上,则需要在命令后面追加"+参数",如果想要把某个隐藏功能移出文件,则需要追加"-参数"

    • i 无法对文件进行修改,若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
    • a 仅允许补充(追加)内容,无法覆盖/删除内容
    • S 文件内容在变更后立即同步到硬盘
    • s 彻底从硬盘中删除,不可恢复
    • A 不再修改这个文件或目录的最后访问时间
    • b 不再修改文件或目录的存取时间
    • D 检查压缩文件中的错误
    • d 使用dump命令备份时忽略本文件
    • c 默认将文件或目录进行压缩
    • u 当删除该文件后依然保留其在硬盘中的数据,便于恢复
    • t 让文件系统支持尾部合并
    • x 可以直接访问压缩文件中的内容

    案例

    1. 先创建一个普通文件,然后尝试删除这个文件
    [root@linuxprobe ~]# echo "it's test" > linuxprobe
    [root@linuxprobe ~]# rm linuxprobe 
    rm: remove regular file 'linuxprobe'? y
    [root@linuxprobe ~]# ls
    

    发现可以直接删除

    1. 再创建一个文件,并为其设置"不允许删除与覆盖+a参数"
    [root@linuxprobe ~]# echo "it's test" > linuxprobe
    [root@linuxprobe ~]# chattr +a linuxprobe 
    [root@linuxprobe ~]# rm linuxprobe 
    rm: remove regular file 'linuxprobe'? y
    rm: cannot remove 'linuxprobe': Operation not permitted
    

    lsattr

    lsattr命令用于查看文件的隐藏权限。

    lsattr[参数]文件名称
    
    [root@linuxprobe ~]# lsattr linuxprobe 
    -----a------------ linuxprobe
    

    文件访问控制列表ACL

    如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表ACL,针对指定的用户或用户组设置文件或目录的操作权限,更加精准地派发权限

    • 如果针对某个目录设置ACL,则目录中的文件会继承其ACL权限
    • 如果针对文件设置ACL,则文件不再继承其所在目录的ACL权限

    setfacl

    setfacl用于管理文件的ACL权限规则

    setfacl[参数]文件名称
    
    • -R 递归子目录
    • -m 修改权限
    • -b 删除全部权限
    • -x 删除某个权限

    getfacl

    getfacl用于查看文件的ACL权限

    getfacl  [参数] 文件名
    

    坑:相关东西以后再补

    su命令与sudo服务

    su使得当前用户在不退出登录的情况下,顺畅地切换到其他用户

      • 完全切换到新用户,把环境变量信息也变为新用户的相应信息
        sudo用于给普通用户提供额外的权限 sudo[参数] 用户名

    sudo

    sudo命令用于给普通用户提供额外的权限

    sudo[参数]用户名
    

    相关文章

      网友评论

        本文标题:Linux Chapter05——用户身份与文件权限

        本文链接:https://www.haomeiwen.com/subject/bgowwdtx.html