• 47-用户和权限管理


    用户的管理和相关管理命令

    用户的基础概念

    • Linux是一个多用户的操作系统:
      所有要使用系统资源的用户需要先向系统管理员申请一个账号,之后以此账号进入系统;
      可以在系统上建立多个用户,而多个用户可以在同一时间内登录至同一系统执行不同的任务。
    • 用户:
      用户是能够获取系统资源的权限的集合;
      每个用户都会分配一个特有的id号-uid。

    用户UID

    • UID指的是用户的ID (User lD),一个用户UID标示一个给定用户,UID是用户的唯一标示符,通过UID可以区分不同用户的类别(用户在登录系统时是通过UID来区分用户,而不是通过用户名来区分)∶
    1. 超级用户:也称为root用户,它的UID为O0,超级用户拥有系统的完全控制权,可以进行修改、删除文件等操作,也可以运行各种命令,所以在使用root用户时要十分谨慎;
    2. 普通用户:也称为一般用户,它的UID为1000-60000之间,普通用户可以对自己目录下的文件进行访问和修改,也可以对经过授权的文件进行访问;
    3. 虚拟用户:也称为系统用户,它的UID为1-999之间,虚拟用户最大的特点是不提供密码登录系统,它们的存在主要是为了方便系统的管理。

    区分用户类别

    • 通过查看不同用户UID来区分用户的类别为超级用户、普通用户或是虚拟用户。
    • 查看UID命令:id [option] [user_name]。
    • 相关参数:
      -u,-user : 只输出有效UID
      -n,-name : 对于-ugG输出名字而不是数值
      -r,-real : 对于-ugG输出真实ID而不是有效ID
    • UID为0时,标识的是超级用户(即root用户),UID为1000-60000之间,标识的是普通用户,UID为1-999之间,标识的是虚拟用户(即系统用户)。

    创建用户- useradd

    • useradd命令可用来创建用户账号,并保存在/etc/passwd文件中。
    • 语法: useradd [options] user_name。
      其中的命令选项说明如下:
      -u指定用户UID
      -o配合“-u”属性,允许UID重复
      -g指明用户所属基本组,既可为用户组名,也可为GID(该组必须已存在)
      -d指定用户的home目录,并自动创建用户home目录
      -M : 在创建用户时不创建home目录
      -s指明用户的默认shell程序
      -D显示或更改默认配置
      在这里插入图片描述
      uid:1002 gid:1004
      家目录:home/user
      userr默认的shell程序是bin目录下的bash程序

    修改用户- usermod

    • usermod可用来修改用户账号的各类信息。
    • 语法: usermod [options] user_name。
      其中的命令选项说明如下:
      -u 修改用户UID
      -g 修改用户所属用户组口
      -l 修改用户账号名称
      -L 锁定指定的用户,让其无法登录
      -d 修改用户home目录
      -s 修改用户默认shell程序
      在这里插入图片描述

    删除用户- userdel

    • userdel用于删除指定的用户以及与该用户相关的文件。
    • 语法:userdel [options] user_name。
      其中的命令选项说明如下:
      -f 强制删除用户账号,即使用户当前处于登录状态
      -r 删除用户,同时删除与用户相关的所有文件
      -h 显示命令的帮助信息
      (userdel命令用于删除指定的用户以及用户相关的文件,实际上是对系统的用户账号文件进行了修改)
      在这里插入图片描述

    修改用户密码- passwd

    • passwd用来修改用户的密码。
    • 语法: passwd [OPTION…] user_name。
      其中的命令选项说明如下:
      -n 设置修改密码最短天数
      -× 设置修改密码最长天数
      -w 设置用户在密码过期前多少天收到警告信息
      -1 立即让用户的密码过期
      -i 设置密码过期多少天后禁用账户
      -I 立即让用户锁定
      -u 立即解除用户的锁定
      -d 删除用户密码
      -S 显示用户密码信息
      (root用户可以修改任何用户的密码,普通用户只能修改自身的密码)
      在这里插入图片描述

    实验:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    用户的管理文件

    用户组的基础概念

    • 用户组:
      具有相同特性用户的逻辑集合,通过组的形式使得具有相同特性的多个用户能够拥有相同的权限,便于管理;
      每一个用户都拥有自己的私有组;
      同一组内的所有用户可以共享该组下的文件;
      每一个用户组都会被分配一个特有的id号-gid。

    用户组GID

    • 用户组ID (Group lD,简称为GID)和用户UID类似,作为唯一标识符来标示系统中的一个用户组:
      在添加账户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组;
      GID与UID都会将0赋予给超级用户或者具有超级用户的用户组(也就是root用户组);
      系统会预留一些较前的GID给虚拟用户(也称为系统用户)。
    • 可以通过输入命令行id [option] [user_name],查看用户组gid以及每个用户组下拥有的用户数量。

    用户组分类

    • 用户组分类:
      普通用户组 : 可以加入多个用户;
      系统组 : 一般加入的用户为系统用户;
      私有组 : 也称为基本组,在创建用户时,如果没有为其指明所属用户组则会为该用户定义一个私有的用户组,且该用户组名称与用户名同名。

    创建组- groupadd

    • groupadd可用来创建一个新的用户组,并将新用户组信息添加到系统文件中。
    • 语法: groupadd [options] group_name
      其中的命令选项说明如下:
      -f 如果组已存在,则成功退出
      -g 为新用户组所使用的GID
      -h 显示此帮助信息并退出
      -o 允许创建有重复GID的组
      -p 为新用户组使用此加密过的密码
      -r 创建一个系统账户
      在这里插入图片描述

    修改组-groupmod

    • groupmod可用来更改群组识别码或者名称。
    • 语法: groupmod [options] group_name
    • 其中的命令选项说明如下:
      -g 修改为要使用的GID
      -h 显示此帮助信息并退出
      -n 修改为要使用的组名称
      -o 允许使用重复的GID
      -p 更改密码(加密过的)

    在这里插入图片描述

    删除组- groupdel

    • Groupdel可用来删除用户组,但若是用户组中包含一些用户,需先删除掉用户后再删除用户组:
    • 语法: groupdel [options] group_name
      其中的命令选项说明如下:
      -f 即便是用户的主组也继续删除
      -h 显示此帮助信息并退出
      (groupdel命令用于从系统中删除组,需要注意的是,若是在组中仍然包括某些用户,此时需要先删除这些用户后,才能删除组)
      在这里插入图片描述

    关联用户和组-gpasswd

    • gpasswd可以用来添加或删除用户到组中。
    • 语法:gpasswd [option] group_name。
      其中的命令选项说明如下:
      -a 向组GROUP中添加用户USER
      -d 从组GROUP中添加或删除用户
      -M 设置组GROUP的成员列表
      -A 设置组的管理员列表
      -r 移除组GROUP的密码
      -R 向其成员限制访问组GROUP
      -Q 要chroot进的目录

    加粗样式

    OpenEuler中用户关联的文件

    • openEuler下涉及到管理用户信息的文件一般有以下两种.
    • /etc/passwd : 用户账号信息文件。
      在这个文件中,保存着系统中所有用户的主要信息,每一行代表着一个记录;
      每一行用户记录中定义了用户各个方面的相关属性。
    • /etc/shadow : 用户账号信息加密文件(又称为“影子文件”)。
      用于存储系统中用户的密码信息;
      由于/etc/passwd文件允许所有用户读取,容易导致密码泄露,因此将密码信息从该文件中分离出来,单独放置在/etc/shadow文件中。
      在这里插入图片描述
      在这里插入图片描述

    OpenEuler中用户组关联的文件

    • openEuler下涉及到管理用户组信息的文件一般有以下两种:
    • /etc/group : 组信息文件。
      在这个文件中,保存着用户组的所有信息,每一行记录代表一个用户组;
      将用户分组是对用户进行管理及控制访问权限的一种手段,每个用户都属于一个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。
    • /etc/gshadow : 组信息加密文件。
      在这个文件中,会保存用户组加密信息,比如说用户组管理密码就保存在此(与/etc/shadow文件相似);
      与/etc/group文件互补,对于大型服务器来说,拥有很多用户和组,此时会针对这些用户和组来生成一些复杂的权限模型,此时设置并管理密码就显得尤为重要。
      在这里插入图片描述
      在这里插入图片描述

    实验:

    在这里插入图片描述

    文件权限的相关概念及相关操作

    权限概述

    • 权限是操作系统用来限制对资源访问的一种机制,权限一般分为读、写、执行。
    • 在Linux系统中,不同的用户所处的地位也不尽相同,不同地位的用户拥有不同的权限等级,为了保证系统的安全性,Linux系统针对不同用户的权限制定了不同的规则。
    • 在Linux系统中,每个文件或目录都具有特定的访问权限、所属用户及所属组,通过这些规则可以限制什么用户、什么组可以对特定的文件执行什么样的操作。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    权限示例-访问权限

    • 在文件信息中显示为:
      -r 允许读取文件内容或目录下全部内容
      -w 允许写文件或在目录下创建、删除文件
      -x 允许执行文件或进入目录
      -无任何权限(显示方式在r、w、x的位置处显示为-)
    • 以usertxt文件为例: drwXr-xr-x. 2 root root 4096 Jun 1 14:00 usertxt
      在这里插入图片描述

    常用权限设置命令

    • chmod命令:修改文件权限。
      Linux的文件调用权限分为三级:文件所有者、群组及其他,通过chmod命令可以控制文件被何人调用;
      使用权限:文件所有者。
    • chown命令:修改文件属主属组(只允许管理员)。
      Linux做为多用户多任务系统,所有文件都有其所有者,通过chown可以将特定文件的所有者更改为指定用户或组;
      使用权限:管理员(root用户)。.
    • chgrp命令:修改文件属组。
      通过chgrp命令可以对文件或目录的所属群组进行更改;
      使用权限:管理员(root用户)。
    • umask命令:遮罩码。
      通过umask命令可以指定在建立文件时进行权限掩码的预设;
      使用权限:管理员和普通用户。

    修改文件权限- chmod

    • 文件调用权限针对于文件所有者,所属组以及其他人,使用chmod可以对文件的调用权限进行修改。

      • 语法: chmod [OPTION]…MODE[,MODE]…FILE…
    • 其中的命令选项说明如下:
      在这里插入图片描述

    • 根据配置场景,可以同时修改文件的一组权限,也可以只修改文件的某个权限。

    在这里插入图片描述

    修改文件权限-chown

    • 利用chown可以将指定文件的所有者改为指定的用户或组。
    • 语法: chown [OPTION]… [OWNER][:[GROUP]] FILE…
      ·其中的命令选项说明如下:
      -c : 显示更改的部分的信息
      -f : 忽略错误信息
      -h : 修改符号链接
      -v : 显示详细的处理信息
      -R : 处理指定目录以及其子目录下的所有文件
    • 根据配置场景,可以只修改属主,也可以只修改属组,亦可以同时修改属主属组。
      在这里插入图片描述

    修改文件权限- chgrp

    • chgrp可用来修改文件或目录的所属组。
    • 语法: chgrp [OPTION]…GROUP FILE…·其中的命令选项说明如下:
      -v : 显示指令执行过程
      -c : 效果类似“-v"参数,但是只回报更改的部分
      -f : 不显示错误信息
      -h : 只修改符号连接的文件,而不对其他任何相关文件进行变动
      -R : 递归处理,即将指定目录下的所有文件及子目录一并处理
    • 根据配置场景更改文件所属群组。
      在这里插入图片描述

    预设权限掩码-umask

    • umask可用来指定在建立文件或目录时进行权限掩码的预设。
    • 语法: umask: umask [-p] [-S] [mode]
      ·其中的命令选项说明如下:
      -p : 显示命令名称
      -S : 文字形式表示权限掩码
    • 常见umask值及与之对应的文件或目录权限:
      在这里插入图片描述
      默认777-umask-111 = 文件权限
      在这里插入图片描述

    其他权限管理

    命令- sudo

    • sudo可允许普通用户执行root用户才能执行的任务。·
    • 语法: sudo-h / -K / -k |-V
      ·其中的命令选项说明如下:
      -h : 显示版本号以及指令的使用说明
      -k : 使使用者在下次执行sudo时询问密码
      -V : 显示版本编号
      -l : 显示使用者的权限
      -L : 显示sudos设置
      etc…

    实验

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Git版本控制管理——Git和GitHub
    java方法返回多个值,使用Pair、Triple
    react_14
    Three.js真实相机畸变效果模拟
    【Android笔记51】Android之两种常见的数据交互方式(Activity和Activity、Activity和数据适配器)
    (粗糙的笔记)动态规划
    NFT游戏有哪些?盘点当前热门的NFT游戏
    Springboot毕设项目博恒人力资源规划系统671c9(java+VUE+Mybatis+Maven+Mysql)
    力扣110 补9.7
    【工作记录】springboot集成aop实现日志@20230918
  • 原文地址:https://blog.csdn.net/m0_68516464/article/details/127909238