Linux账号与权限管理

一、用户管理

1.1 用户账号和组账号概述

1.1.1 用户分类

(1)超级用户(Root):Root用户是Linux系统中的管理账户,该用户的UID和GID都是0
(2)普通用户:普通用户账号需要由 root 或其他管理员用户创建,权限有限。在CentOS 7 中普通用户的 UID 从 1000 开始,直到系统允许的最大值。
(3)程序用户:程序用户是安装 Linux 操作系统和应用程序时创建的低权限用户,这些用户不能登录系统,它们主要是维持某个服务的正常运行。在CentOS 7中,UID范围是1~999。

1.1.2 组账号分类

(1)基本组(主组):基本组是用户默认所属的组,通常与用户名相同。在创建用户时,系统会为用户自动创建同名的基本组。
(2)附加组:附加组是用户除了基本组之外,可以加入的其他组。一个用户可以加入多个附加组。

1.1.3 UID和GID

(1)UID:每个用户的身份标示,类似于每个人的身份证号码。系统通过 UID 来管理文件和权限。
(2)GID: 是每个用户组的唯一标识符。系统通过 GID 来控制对共享资源的访问权限。

1.2 用户账号文件

(1)/etc/passwd 文件记录每个用户的基本信息,字段之间用冒号分隔。
(2)各个字符解释:

  • root :用户名。
  • x :密码占位符,表示密码信息保存在 /etc/shadow 中。
  • 0 :UID,root 用户的 UID 是 0。
  • 0 :GID,root 用户的基本组的 GID 也是 0。
  • root :用户描述。
  • /root :宿主目录,root 用户的默认工作目录。
  • /bin/bash :登录 Shell,root 用户登录后使用的默认 Shell。
  • 查看每个用户的基本信息

1.3 添加用户账号

(1)添加用户账号常用的选项

  • -u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
  • -d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
  • -e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
  • -g:指定用户的基本组名(或使用 GID 号)。
  • -G:指定用户的附加组名(或使用 GID 号)。
  • -M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。
  • -s:指定用户的登录Shell。
    (2)添加用户并查看添加的用户
    在这里插入图片描述
    (3)创建一个辅助管理员账号 wj,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录
    指定为“/wj”
    在这里插入图片描述

1.4 更改用户密码

(1)更改用户密码常用选项

  • -d:清空指定用户的密码,仅使用用户名即可登录系统。
  • -l:锁定用户账户。
  • -S:查看用户账户的状态(是否被锁定)。
  • -u:解锁用户账户。
    (2)锁定账户,需要root权限
    在这里插入图片描述
    (3)解锁账户
    在这里插入图片描述
    (4)面交换设置密码以及更换密码
    在这里插入图片描述

1.5 删除用户账号

删除账户时,要加选 -r ,表示连用户的宿主目录一并删除
在这里插入图片描述

1.6 用户账号的初始配置文件

当使用 useradd 创建新用户时,系统会从 /etc/skel/ 复制默认配置文件到新用户的家目录。
常见的文件:

  • .bash_profile :登录时执行的命令。
  • .bashrc :每次加载 bash 时执行(包括登录)。
  • .bash_logout :用户退出登录时执行。
    如果希望为所有用户添加登录后自动运行的命令程 序、自动设置变量等,可以直接修改/etc 目录下的类
    似文件。

二、组管理

2.1 组账号文件

与组账号相关的配置文件有两个,分别是/etc/group 和/etc/gshadow。前者用于保存组账号名称、GID 号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息。
检索root 组包括哪些用户
在这里插入图片描述
检索哪些组包括root 用户
在这里插入图片描述

2.2 添加组账号(groupadd)

添加组账号并查询结果
在这里插入图片描述

2.3 删除组账号(groupdel)

删除组账号并查询是否删除
在这里插入图片描述

三、查询账号信息

3.1 groups命令

查询用户所属的组
在这里插入图片描述

3.2 id命令

查询用户身份标识
在这里插入图片描述

3.3 w、who、users

w查看已经登录到主机的用户信息
在这里插入图片描述
who查看已经登录到主机的用户信息
在这里插入图片描述
users查看已经登录到主机的用户信息
在这里插入图片描述

四、su命令切换用户

用su切换用户,处于root用户时,切换任意用户不需要密码;处于普通用户时,切换其他用户需要目标用户的密码。

  • 处于root用户时,切换任意用户
    在这里插入图片描述
  • 处于普通用户时,切换其他用户
    在这里插入图片描述

五、文件权限

5.1 访问权限

  • 读取 r:允许查看文件内容、显示目录列表 。用数字4表示。
  • 写入 w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 。用数字2表示。
  • 可执行x:允许运行程序、切换目录。用数字1表示。

5.2 归属

  • 属主:拥有该文件或目录的用户帐号
  • 属组:拥有该文件或目录的组帐号

5.3 设置文件和目录的权限(chmod)

5.3.1 设置文件权限时有两种方式

  • 数字表 421
  • 字符: u 为用户, g 为组, o 为其他用户 ,a 是所有用户
    修改文件权限为755
    在这里插入图片描述
    常用 -R 递归修改指定目录下所有子项的权限
    在这里插入图片描述

5.3.2 设置文件和目录的归属chown

(1)常用命令

  • chown 属主 文件或目录 root:root
  • chown :属组 文件或目录
  • chown 属主:属组 文件或目录
    常用 -R 递归修改指定目录下所有文件、子目录的归属
    (2)修改文件的归属
    在这里插入图片描述
    (3)修改目录的归属
    在这里插入图片描述

六、提权权限

6.1 sudo机制

sudo机制是 Linux/Unix 系统中的一种权限管理机制。它允许普通用户以超级管理员(root)或其他用户的身份执行命令,无需切换到 root 用户。

6.2 sudo命令

  • -l 列出用户在主机上可用的和被禁止的命令;配置好/etc/sudoers后,要用这个命令来查看和测试配置是否正确;
  • -v 验证用户的时间戳;用户运行sudo 后,输入用户的密码,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳;
  • -u 指定以某个用户执行特定操作;
  • -k 删除时间戳,下一个sudo 命令要求用求提供密码;

6.3 用户组设置sudo提权

(1) wjk 用户可以使用useradd usermod
步骤:

  • 修改配置文件,添加 wjk ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
    在这里插入图片描述
    在这里插入图片描述
  • 切换目录并添加用户
    在这里插入图片描述
    (2) 测试使用sudo 中的 useradd 命令是否需要输入密码,如wjk ALL=(root) NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod
    在这里插入图片描述
    用visudo打开配置文件,在配置文件中添加wjk ALL=(root) NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod
    在这里插入图片描述
    (3)启用sudo操作日志
    在visudo配置里面进行修改
    在这里插入图片描述
    在这里插入图片描述

总结

(1)Linux 用户分为超级用户(root,UID=0)、普通用户(UID≥1000,可登录) 和程序用户(UID=1-999,不能登录,用于跑服务),三者权限逐级递减,实现系统安全隔离。
(2)/etc/passwd 存用户基本信息(用户名、UID、家目录、Shell),密码字段用 x 占位;真正的加密密码存放在 /etc/shadow 中,只有 root 可读,确保密码安全。
(3)通过 visudo 编辑 /etc/sudoers 文件,授权普通用户以 root 身份执行特定命令(如 sudo useradd),操作会被日志记录,兼顾安全与灵活。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐