栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

九、管理本地用户和组

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

九、管理本地用户和组

九、管理本地用户和组

本章节介绍如何管理本地用户和组。都是基础中必须要掌握的技能,需要多理解和实操。

运维基本功专栏地址:https://blog.csdn.net/qq_41765918/category_11608412.html

文章目录

九、管理本地用户和组

9.1 Linux 安全模型

9.1.1 用户9.1.2 用户组9.1.3 用户和组的关系 9.2 用户和组的配置文件

9.2.1 用户和组的主要配置文件9.2.2 passwd文件格式9.2.3 shadow文件格式9.2.4 group文件格式9.2.5 gshdow文件格式9.2.6 文件操作 9.3 用户和组管理命令

9.3.1 用户创建9.3.2 用户属性修改9.3.3 删除用户9.3.4 查看用户相关的ID信息9.3.5 切换用户或以其他用户身份执行命令9.3.6 设置密码9.3.7 修改用户密码策略9.3.8 创建组9.3.9 组删除9.3.10 更改和查看组成员 总结

9.1 Linux 安全模型 9.1.1 用户

Linux中每个用户是通过User Id (UID)来唯一标识的

管理员:root, 0普通用户:1-60000 自动分配

系统用户:1-499 (rhel 6以前), 1-999 (rhel 7以后)
对守护进程获取资源进行权限分配登录用户:500+ (rhel6 以前), 1000+(rhel7以后)
给用户进行交互式登录使用 9.1.2 用户组

Linux中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GID) 来唯一标识的。

管理员组:root, 0普通组:

系统组:1-499(rhel 6以前), 1-999(rhel7以后), 对守护进程获取资源进行权限分
配普通组:500+(rhel 6以前), 1000+(rhel7以后), 给用户使用 9.1.3 用户和组的关系

用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建
和用户名同名的组,做为用户的主要组,由于此组中只有一个用户,又称为私有组用户的附加组(supplementary group): 一个用户可以属于零个或多个辅助组,附属组

范例:

[root@servera ~]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
[root@servera ~]# id student

Linux安全上下文Context:运行中的程序,即进程 (process),以进程发起者的身份运行,进程所能够
访问资源的权限取决于进程的运行者的身份
比如:分别以root 和普通用户的身份运行/bin/cat /etc/shadow ,得到的结果是不同的,资源能否能
被访问,是由运行者的身份决定,非程序本身
范例:

[student@servera ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[root@servera ~]# cat /etc/shadow
root:$6$dV.Vb.MYhHB82gJz$FnOeixf0W.UgV.Vd4xx8yWuJT.fSJbGTXpdpQ0K9BwWzI5hWeG4lWQYisFNz.LReR5rcz6QFg9sc9SBZxYXhP0::0:99999:7:::
bin:*:18199:0:99999:7:::
daemon:*:18199:0:99999:7:::
adm:*:18199:0:99999:7:::
9.2 用户和组的配置文件 9.2.1 用户和组的主要配置文件

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)/etc/shadow:用户密码及其相关属性/etc/group:组及其属性信息/etc/gshadow:组密码及其相关属性 9.2.2 passwd文件格式

student:x:1000:1000:student:/home/student:/bin/bash

login name:登录用名(student)passwd:密码 (x)UID:用户身份编号 (1000)GID:登录默认所在组编号 (1000)GECOS:用户全名或注释home directory:用户主目录 (/home/student)shell:用户默认使用shell (/bin/bash) 9.2.3 shadow文件格式

student:$6$4NaBMjQ...::0:99999:7:::

登录用名用户密码:一般用sha512加密从1970年1月1日起到密码最近一次被更改的时间密码再过几天可以被变更(0表示随时可被变更)密码再过几天必须被变更(99999表示永不过期)密码过期前几天系统提醒用户(默认为一周)密码过期几天后帐号会被锁定从1970年1月1日算起,多少天后帐号失效字段保留

更改密码加密算法:

authconfig --passalgo=sha256 --update

密码的安全策略

足够长使用数字、大写字母、小写字母及特殊字符中至少3种使用随机密码定期更换,不要使用最近曾经使用过的密码

范例:生成随机密码

[root@servera ~]# openssl rand -base64 9
JcEFSIbX3xGl

生成随机密码:https://suijimimashengcheng.51240.com/

9.2.4 group文件格式
student:x:1000:
mail:x:12:postfix

群组名称:就是群组名称
群组密码:通常不需要设定,密码是被记录在 /etc/gshadow
GID:就是群组的 ID
以当前组为附加组的用户列表(分隔符为逗号)

9.2.5 gshdow文件格式
student:!::

群组名称:就是群的名称
群组密码:
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:多个用户间用逗号分隔

9.2.6 文件操作

vipw和vigrpwck和grpck 9.3 用户和组管理命令

用户管理命令

useradd 创建用户usermod 修改用户属性userdel 删除用户

组帐号维护命令

groupadd 创建组groupmod 修改属性groupdel 删除组 9.3.1 用户创建

useradd 命令可以创建新的Linux用户

格式:

useradd [options] LOGIN

常见选项:

-u UID
-e 设定用户什么时候失效
-o 配合-u 选项,不检查UID的唯一性
-g GID 指明用户所属基本组,可为组名,也可以GID
-c "COMMENT“ 用户的注释信息
-d HOME_DIR 以指定的路径(不存在)为家目录
-s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 rhel 6之前: ID<500,rhel 7以后: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户

范例:

useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache
9.3.2 用户属性修改

usermod 命令可以修改用户属性
格式:

usermod [OPTION] login

常见选项:

-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使
用-a选项
-s SHELL:新的默认SHELL
-c 'COMMENT':新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 新的名字
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限,即宽限期
9.3.3 删除用户

userdel 可删除Linux 用户
格式:

userdel [OPTION]... Login

常见选项:

-f, --force 强制
-r, --remove 删除用户家目录和邮箱
9.3.4 查看用户相关的ID信息

id 命令可以查看用户的UID,GID等信息

id [OPTION]... [USER]

常见选项:

-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
9.3.5 切换用户或以其他用户身份执行命令

su: 即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令
格式:

su [options...] [-] [user [args...]]

常见选项:

-l --login su -l UserName 相当于 su - UserName
-c, --command  pass a single command to the shell with -c

切换用户的方式:

su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完
全切换su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

说明:root su至其他用户无须密码;非root用户切换时需要密码

注意:su 切换新用户后,使用 exit 退回至旧的用户,而不要再用 su 切换至旧用户,否则会生成很多的
bash子进程,环境可能会混乱。

换个身份执行命令:

su [-] UserName -c 'COMMAND'

范例:

[root@servera hao]# su - hao -c "touch hao.txt"
[root@servera hao]# ll ~hao
total 0
-rw-rw-r--. 1 hao hao 0 Mar 26 22:07 hao.txt
9.3.6 设置密码

格式:

passwd [OPTIONS] UserName

常用选项:

-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码,Ubuntu无此选项

范例:非交互式修改用户密码

[root@servera ~]# echo 'redhat' | passwd --stdin redhat
Changing password for user redhat.
passwd: all authentication tokens updated successfully.
9.3.7 修改用户密码策略

chage 可以修改用户密码策略

格式:

chage [OPTION]... LOGIN

常见选项:

-d LAST_DAY #更改密码的时间
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
-I --inactive INACTIVE #密码过期后的宽限期
-E --expiredate EXPIRE_DATE #用户的有效期
-l 显示密码策略

范例:

[root@servera ~]# chage -m 3  -M 30 -W 14 -I 7 -E 2021-03-27 hao
[root@servera ~]# chage -l hao
Last password change					: password must be changed
Password expires					: password must be changed
Password inactive					: password must be changed
Account expires						: Mar 27, 2021
Minimum number of days between password change		: 3
Maximum number of days between password change		: 30
Number of days of warning before password expires	: 14

范例:用户下次登录需要更改密码

[root@servera ~]# chage -d 0 hao
9.3.8 创建组

groupadd实现创建组
格式

groupadd [OPTION]... group_name

常见选项:
-g GID 指明GID号;[GID_MIN, GID_MAX]
-r 创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000
范例:

groupadd -g 48 -r apache

groupmod 组属性修改
格式:

groupmod [OPTION]... group

常见选项:
-n group_name: 新名字
-g GID: 新的GID

9.3.9 组删除

groupdel 可以删除组
格式

groupdel [options] GROUP

常见选项:
-f, --force 强制删除,即使是用户的主组也强制删除组

9.3.10 更改和查看组成员

groupmems 可以管理附加组的成员关系

格式

groupmems [options] [action]

常见选项:

-g, --group groupname #更改为指定组 (只有root)
-a, --add username #指定用户加入组
-d, --delete username #从组中删除用户
-p, --purge #从组中清除所有成员
-l, --list #显示组成员列表

范例:

[root@servera ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student)
[root@servera ~]# groupmems -l -g admins
[root@servera ~]# groupmems -a student -g admins
[root@servera ~]# groupmems -l -g admins
student 
[root@servera ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),1001(admins)

[root@servera ~]# groupmems -a student -g mysql
[root@servera ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),27(mysql),1001(admins)


groups 可查看用户组关系

格式:

#查看用户所属组列表
groups [OPTION].[USERNAME]...
总结

介绍Linux 安全模型。介绍如何运用用户和组的配置文件。介绍如何运用用户和组管理命令。若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/718570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号