• linux--用户、组、权限


    目录

    系统用户文件

    1、创建用户

    2、修改用户权限

    3、设置密码

    4、删除用户

    5、文件内容详解

    6、查看用户ID

    系统组文件

    1、创建组

    2、修改组

    3、删除组

    4、管理组成员

    系统文件权限

    系统文件权限属组

    1、修改文件的属组

    2、修改文件归属者

    3、修改文件权限

    4、文件acl

    系统文件特殊权限

    1、SetUID

    2、SetGID

    3、SBIT


            🍤:好好复习,不整花里胡哨的了。

            说到用户组权限,可以想像成windows操作系统一样,同样都是基于用户身份来控制对资源的访问,每个用户账户都有唯一的用户名与密码,只是个别细节方面存在一些差异。

    系统用户文件

    系统文件路径:

            /etc/passwd 用户信息文件

            /etc/shadow 用户密码文件

    1、创建用户

    格式如下:

    useradd        [选项]        用户名

    -u 指定用户的uid

    -g 指定用户的基本组

    -G 指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的

    -c 指定描述

    -d 指定家目录

    -M 不建立家目录

    -s 指定shell

    -e 指定用户过期时间, 日期

    -f 指定用户过期时间, 天数

    2、修改用户权限

    针对已有用户修改属性(和创建用户相同),格式如下:

    usermod     [选项]     用户名

    -u 指定用户的uid

    -g 指定用户的基本组

    -G 指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的

    -c 指定描述

    -d 指定家目录

    -M 不建立家目录

    -s 指定shell

    -e 指定用户过期时间, 日期

    -f 指定用户过期时间, 天数

    3、设置密码

    格式如下:

    passwd     [选项]     用户名

    选项如下: 

    -l 锁定

    -u 解锁

    -d 清空

    例:无交互创建密码(适用于脚本)

    echo "密码" | passwd --stdin 用户名

    4、删除用户

    userdel     [选项]     用户名

    -r 删除宿主目录 

    5、文件内容详解

            以/etc/passwd用户信息文件、/etc/shadow用户密码文件为例,以“冒号”为分隔符。

    使用命令查看root用户

    1. head -1 /etc/passwd
    2. root:x:0:0:root:/root:/bin/bash
    3. 用户名:密码占位符:UID:GID:描述信息:家目录:登录shell

    使用命令查看zhangsan用户密码文件

    1. tail -1 /etc/shadow
    2. zhangsan:1nPiR1mec91adasdasw222:18463:0:99999:7:::

    1)用户名

    2)加密后的密码

    3)上一次密码修改时间(单位是天,是距离1970年1月1日 多少天)

    4)密码最小生存周期 单位:天 0表示随时可以修改密码;2表示两天内不能修改

    5)密码最大生存周期 单位:天,密码使用的最长时间

    6)密码到期前几天开始警告

    7)密码过期之后到账户失效之前的时间限制 密码过期之后还可以用几天

    8)账户过期时间

    9)保留列

    6、查看用户ID

    id  用户名

    系统组文件

    与用户文件一样都是以冒号分隔。

    1. head -1 /etc/group
    2. root :x:0
    3. 组名:密码占位符:GID:用户列表

    1、创建组

    格式如下:

    groupadd    [选项]    组名
    

     选项如下:

    -g  指定gid

    2、修改组

    格式如下:

    groupmod    [选项]    组名

    3、删除组

    格式如下:

    groupdel    组名

    4、管理组成员

    添加成员到组

    gpasswd -a  用户名 组名

    删除组内成员

    gpasswd -d  用户名 组名

    批量添加成员到组

    gpasswd -M  用户1,用户2 组名

    系统文件权限

    文件权限可用数字表示

    可读可写可执行
    rwx
    421

    [root@localhost ~]# ll test.txt

    -rw-r--r--. 1 root root 0 8月 21 18:27 test.txt

    第一栏代表这个文件的类型与权限 。

         第一个字符代表这个文件是“目录、文件或链接文件等等”:

            [ d ]则是目录,例如上表文件名为“.config”的那一行;

            [ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行;

            [ l ]则表示为链接文件(link file);

            [ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);

            [ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备) 。

         接下来的rwx权限字符,以三个为一组:

            第一组为“文件拥有者可具备的权限”;

            第二组为“加入此群组之帐号的权限”;

            第三组为“非本人且没有加入本群组之其他帐号的权限。

    第二栏表示有多少文件名链接到此节点。

    第三栏表示这个文件(或目录)的“拥有者账号”。

    第四栏表示这个文件的所属群组。

    第五栏表示这个文件的容量大小,默认单位是Bytes(字节)。

    第六栏表示这个文件的创建日期或者是最近修改日期。

    第七栏为这个文件的文件名。

    系统文件权限属组

    1、修改文件的属组

    chgrp   组名  文件或目录名

    2、修改文件归属者

            下面命令可以只设置属主也可以同时设置属组。

    格式如下:

    chown   属主[:[属组]]   文件或目录名

            例:如果只想设置属组可以执行下面命令(单独设置属主就不需要加冒号了)。

    chown :属组   文件或目录名

    3、修改文件权限

    格式如下:

    chmod   [ugoa][+-=][rwx]    文件或目录

            例1:设置文件属主拥有全部权限,属组可读,其他人没有任何权限。

    1. [root@localhost ~]# chmod 740 test.txt
    2. [root@localhost ~]# ll -d test.txt
    3. -rwxr-----. 1 root root 0 821 18:27 test.txt

            例2:根据例1的权限,同组成员添加可执行权限。

    1. [root@localhost ~]# chmod g+x test.txt
    2. [root@localhost ~]# ll -d test.txt
    3. -rwxr-x---. 1 root root 0 821 18:27 test.txt

    4、文件acl

    (1)查看acl

    getfacl     文件名

    (2)设置acl

    格式如下:

    setfacl     [选项]     文件名

    选项如下:

    -m u:用户名:rwx 文件名                 单独赋予zhangsan权限

    -x u:用户名                                     删除acl条目

    -b 清空acl

    (3)查看文件隐藏文件

    lsattr     [文件名]

    (4)更改文件隐藏权限

    格式如下:

    chattr     [选项]     文件名

    选项如下:

    +i 锁定文件

    +a 设置文件仅追加

    系统文件特殊权限

    1、SetUID

            当一个具有执行权限的文件设置SetUID权限后,用户执行这个文件时将以文件所有者的身份执行。

            权限数字为4644——前面的4代表suid,后面表示用户组其他人权限。

    格式如下:

    1. ls -l /usr/bin/passwd
    2. chmod u-s /usr/bin/passwd 去除s权限
    3. chmod u+s /usr/bin/passwd 添加s权限

    2、SetGID

            基本与SetUID相同,GID为设置所属组的特殊权限,可针对目录设置。

            权限数字为2644——前面的2代表guid,后面表示用户组其他人权限。

    格式如下:

    1. ls -l /usr/bin/passwdls -l /usr/bin/locate
    2. chmod g-s /usr/bin/locate 去除g权限
    3. chmod g+s /usr/bin/locate 添加g权限

    3、SBIT

            粘滞位:只对目录有效,用户不能删除不属于自己的文件。

            权限数字为1755——前面的1代表sbit,后面表示用户组其他人权限。

    格式如下:

    chmod   [ugo]+t /目录

  • 相关阅读:
    EPSS 解读:与 CVSS 相比,孰美?
    python如何使用gspread读取google在线excel数据?
    No1.详解【2023年全国大学生数学建模竞赛】C题——蔬菜类商品的自动定价与补货决策(代码 + 详细输出 + 数据集&代码 下载)
    TensorFlow基本概念与常用函数
    实时云渲染与直播应用场景结合技术探索
    力扣-----链表
    VTK——使用包围盒切割医学图像
    系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第五部分:支付系统
    iOS 关于 SocketRocket 报错 _utf8_nextCharSafeBody
    从零开始搭建自己的cli脚手架
  • 原文地址:https://blog.csdn.net/qq_61116007/article/details/126449827