Linux账号与权限管理
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),操作会被日志记录,兼顾安全与灵活。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)