• 【Linux学习】用户身份与文件权限


    用户身份与文件权限

    用户身份与能力

    UID

    1. 管理员的UID为0:系统的管理员用户
    2. 系统用户的UID为1~999:
    3. 普通用户从1000开始。

    useradd命令

    用于创建新的用户

    useradd  【选项】 用户名
    
    • 1

    默认情况下:用户家目录会被存放在/home下,默认的shell解释器为/bin/bash.而且默认会创建一个与该用户同名的基本用户组。

    这些默认可由下面的参数修改。

    参数作用
    -d指定用户的家目录
    -e账户的到期时间,格式为YYYY-MM-DD
    -u指定该用户的默认UID
    -g指定一个初始的用户基本组(必须已经存在)
    -G指定一个或者多个扩展用户组
    -N不创建与用户同名的基本用户组
    -s指定该用户的默认shell解释器

    groupadd命令

    用于创建用户组

    usermod命令

    用于修改用户的属性

    用户的信息保存在/etc/passwd

    usermod   【选项】   用户名
    
    • 1
    参数作用
    -c填写用户账户的备注信息
    -d -m这两参数连用,可重新指定用户的家目录,并且把旧的数据转移过去
    -e账户的到期时间,格式为YYYY-MM-DD
    -g变更所属用户组
    -G变更拓展用户组
    -L锁定用户,禁止其登录系统
    -U-s 变更默认终端
    -u修改用户的uid

    passwd命令

    用于修改用户密码,过期时间,认证信息

    passwd  【选项】 【用户名】
    
    • 1
    参数作用
    -l锁定用户,禁止其登录
    -u接除锁定,容许用户登录
    –stdin允许通过标准输入修改用户密码,如echo “mima” | passwd --stain Username
    -d该用户可以空密码登录
    -e强制用户在下次登录时修改密码
    -S显示用户的密码是否被锁定,以及密码所采用的加密算法

    userdel命令

    用于删除用户

    uderdel  【选项】  用户名
    
    • 1
    参数作用
    -f强制删除用户
    -r同时删除用户以及家目录

    文件权限与归属

    尽管linux系统中一切皆文件,但是每个文件的类型不尽相同

    字符文件类型
    -普通文件
    d目录文件
    l链接文件
    b块设备文件
    c字符设备文件
    p管道文件

    文件的特殊权限

    SUID

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

    当文件由rwx变为rws时,就意味着普通用户临时的获得了修改passwd文件的权限

    SGID

    让执行者临时拥有属组的权限。

    让某个目录中创建的文件自动继承该目录的用户组。

    chown命令

    设置文件所有者

    chown  【-R】 user名  :group名  文件名   # -R是在文件夹的时候添加
    
    • 1

    chmod 命令

    修改文件所属用户,所属组,其他用户的权限

    chmod  777 文件名
    
    • 1

    chgrp命令

    设置文件所属组

    chgrp  【-R】 所属组  文件名  (目录名)
    
    • 1

    SBIT

    SBIT特殊权限位,可确保用户只能删除自己的文件,而不能删除其他用户的文件

    当设置SBIT后,文件的其他人权限的x就会变为t,如果没x就会变为T。

    文件隐藏属性

    chattr命令

    用于设置文件的隐藏属性

    chattr  【参数】 文件   # 加功能就是+参数,移除功能就是移除参数
    
    • 1
    参数作用
    i文件:不允许删除改名,添加和修改数据
    目录:只能修改目录下文件的数据,不允许新建和删除文件。
    a文件:只能增加,不能删除修改
    目录:只能修改,新建,不允许删除。
    S文件内容在修改之后立即同步到硬盘
    s彻底从硬盘中删除,不可回复
    A不在修改这个目录或文件的最后访问时间(atime)
    b不在修改文件或目录的存取时间
    D检查压缩文件中的错误
    d使用dump命令备份时忽略本文件/目录
    c默认将文件或者目录进行压缩
    u当删除文件后依然保持其在硬盘中的数据,方便日后恢复
    t让文件系统支持尾部合并
    X可以直接访问压缩文件中的内容。

    lsattr命令

    用于显示文件的隐藏权限

    文件访问控制列表(ACL)

    不知道大家是否注意到,前文讲的一般权限,特殊权限,隐藏权限其实有一个共性-----权限是针对某一类用户设置的。如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。

    基于普通文件或目录设置的ACL其实就是针对指定的用户或者用户组设置文件或目录的操作权限。

    如果针对某个目录设置了ACL,则目录的文件会继承其ACL,若针对文件设置了ACL,则文件不在继承其所在目录的ACL。

    setfacl命令

    用于管理文件的ACL规则

    setfacl  【参数】 文件名称
    
    -R  #针对目录文件使用的递归参数
    -m  #针对普通文件使用的参数
    -b  #删除某个文件的ACL
    
    • 1
    • 2
    • 3
    • 4
    • 5

    例:给一个普通用户设置进去/root的rwx权限

    xn_2022-08-18_08-58-52

    xn_2022-08-18_09-00-57

    但是的但是 我们怎么知道这个文件上是不是有ACL呢。

    常用的ls命令是看不到ACL表的信息的,但是却可以看到文件的权限最后一个点(.)变成了加号(+)。这就意味着文件已经设置了ACL了。

    xn_2022-08-18_09-36-41

    getfacl命令

    用于显示文件上设置的ACL信息

    getfacl  文件名称
    
    • 1

    xn_2022-08-18_09-43-04

    su命令与sudo服务

    su命令

    解决切换用户身份的需求使得当前用户在不退出登录的情况下,顺畅的切换到其他用户。

    sudo

    你从普通用户切换到root用户,是需要root密码的,这就存在着泄露root用户密码的风险。

    sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务

    sudo 【参数】 命令名称
    
    • 1
    参数作用
    -h列出帮助信息
    -l列出当前用户可执行的命令
    -u 用户名 或 UID值以指定的用户身份执行命令
    -k清空密码的有效时间,下次执行sudo命令需要再次进行密码验证
    -b在后台执行指定的命令
    -p更改询问密码的提示语

    总结来说,sudo有以下功能:

    1. 限制用户执行指定的命令
    2. 记录用户执行的每一条命令
    3. 配置文件(/etc/sudoers)提供集中的用户管理,权限与主机参数(visudo就是这里面的内容)
    4. 验证密码的后5分钟内无需让用户再次验证密码。

    visudo的内容:

    谁可以使用  允许使用的主机=(以谁的身份)  可执行命令的列表
    
    dianxin3    ALL=(ALL) ALL
    
    aqassoc   ALL=(ALL) NOPASSWD:ALL,!/bin/su,!/sbin/init,!/sbin/shutdown  # !后面的是除了的
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (/etc/sudoers)提供集中的用户管理,权限与主机参数(visudo就是这里面的内容)
    4. 验证密码的后5分钟内无需让用户再次验证密码。

    visudo的内容:

    谁可以使用  允许使用的主机=(以谁的身份)  可执行命令的列表
    
    dianxin3    ALL=(ALL) ALL
    
    aqassoc   ALL=(ALL) NOPASSWD:ALL,!/bin/su,!/sbin/init,!/sbin/shutdown  # !后面的是除了的
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    MATLAB | solve函数求解析解时不支持分段函数的解决方案
    5. 虚拟化特性介绍
    LeetCode 每日一题——1656. 设计有序流
    【JAVA入门】JUnit单元测试、类加载器、反射、注解
    开启生态新姿势 | 使用 WrodPress 远程附件存储到 COS
    如何在Cocos中绘制一面国旗祝祖国生日快乐、繁荣昌盛
    常见隧道搭建技术
    【数据结构前置知识】初识集合框架和时间,空间复杂度
    初学者的愚蠢代码:天龙八步
    联邦学习:联邦多视角学习在跨领域推荐中的应用
  • 原文地址:https://blog.csdn.net/wxnshuai/article/details/126448426