Linux 用户管理知识与应用实践(三:用户组及修改用户密码) Linux 用户管理知识与应用实践本章将深入讲解用户管理的知识并带领小伙伴们实践 Linux 运维中有关用户管理的工作。六、添加用户组命令 groupadd在 groupadd 命令后面指定用户组名执行就可以建立新的用户组了。但 groupadd 命令的用途不大因为 useradd 命令在创建用户的同时会创建与用户同名的用户组正常情况下都可以满足创建用户组的需求。1、groupadd 命令语法和常用参数groupadd [options] [group] groupadd [选项] [用户组]表 14-12 groupadd 命令的常见参数及说明2、groupadd 命令实例在生产环境中增加用户组的用法一般来说都是非常简单的比如下面的示例是添加 GID 为 802 的用户组 zumahome。实现代码具体如下[rootshy ~]# groupadd -g 802 zumahome [rootshy ~]# tail -l /etc/group zumahome:x:802:提示groupadd 的命令在工作场景中的应用绝大多数情况下最多仅限于此。七、删除用户组命令 groupdelgroupdel 命令用于删除指定的用户组此命令的使用频率极低了解一下即可。groupdel 命令语法和使用范例groupdel [group] groupdel [用户组]说明groupdel 不能删除还有用户归属的主用户组。范例14 -12删除 zumahome 用户组。[rootshy ~]# grep -w zumahome /etc/group zumahome:x:802: [rootshy ~]# groupdel zumahome # 删除 zumahome 用户组命令 [rootshy ~]# grep -w zumahome /etc/group # zumahome 用户组已经被删除了。 [rootshy ~]# groupdel root # 删除root用户组失败因为组内的root用户还存在。 groupdel不能移除用户“root”的主组八、修改用户密码命令 passwdpasswd 命令可以修改用户密码及密码过期时间等内容是很常用的命令。普通用户和超级用户都可以运行 passwd 命令但普通用户只能更改自身的用户密码超级用户 root 则可以设置或修改所有用户的密码。1、passwd 命令语法和常用参数passwd [option] [username] passwd [选项] [用户名]表 14-13 passwd 命令常见参数及说明注意root 用户可以修改任何用户的密码普通用户只能修改自身的密码。root 用户修改密码时如果不符合系统密码规则则会给出警告信息但密码设置仍然有效。而普通用户修改密码时如果使用的是弱密码则会给出告警信息且修改无效。2、passwd 命令使用范例范例14-13修改用户密码的示例。1修改自身用户密码当只执行 passwd 无任何参数和内容时表示修改当前执行命令用户自身的密码。具体代码如下[rootshy ~]# passwd 更改用户 root 的密码 。 新的 密码 # 输入密码 12345678系统不会输出用户输入的密码。 无效的密码 密码未通过字典检查 - 过于简单化/系统化 重新输入新的 密码 # 再次输入密码 123456 passwd所有的身份验证令牌已经成功更新。2设置及修改普通用户的密码[rootshy ~]# useradd oldgirl useradd用户“oldgirl”已存在 [rootshy ~]# passwd oldgirl # 为 oldgirl 用户添加密码 更改用户 oldgirl 的密码 。 新的 密码 无效的密码 密码未通过字典检查 - 过于简单化/系统化 重新输入新的 密码 passwd所有的身份验证令牌已经成功更新。 [rootshy ~]# su - oldgirl # 切换到 oldgirl 用户 上一次登录二 5月 19 22:00:53 CST 2026pts/0 上 [oldgirlshy ~]$ whoami oldgirl [oldgirlshy ~]$ passwd 更改用户 oldgirl 的密码 。 为 oldgirl 更改 STRESS 密码。 当前UNIX 密码 新的 密码 重新输入新的 密码 passwd所有的身份验证令牌已经成功更新。范例14-14显示账号密码信息。[oldgirlshy ~]$ passwd -S oldgirl 只有根用户才能进行此操作。 [oldgirlshy ~]$ exit 登出 [rootshy ~]# passwd -S oldgirl oldgirl PS 2026-07-05 0 99999 7 -1 (密码已设置使用 SHA512 算法。)范例14-15一条命令非人工交互设置密码生产使用技巧。[rootshy ~]# echo 12345678|passwd --stdin oldgirl # --stdin参数能从标准输入中获取密码。 更改用户 oldgirl 的密码 。 passwd所有的身份验证令牌已经成功更新。提示这个命令用于在工作中批量设置密码。范例14-16要求 oldgirl 用户 7 天之内不能更改密码60 天以后必须修改密码过期前 10 天通知用户过期后 30 天禁止用户登录。[rootshy ~]# passwd -n 7 -x 60 -w 10 -i 30 oldgirl 调整用户密码老化数据oldgirl。 passwd: 操作成功 [rootshy ~]# chage -l oldgirl # -l 参数用于查看账户的信息。 最近一次密码修改时间 7月 05, 2026 密码过期时间 9月 03, 2026 密码失效时间 10月 03, 2026 # 对应 -i 参数密码过期30天之后停权。 帐户过期时间 从不 两次改变密码之间相距的最小天数 7 # 对应 -n 参数 两次改变密码之间相距的最大天数 60 # 对应 -x 参数 在密码过期之前警告的天数 10 # 对应 -w 参数3、生产场景下实用技巧用户密码要足够复杂最好是 8 位以上字母含大小写、数字、 特殊字符的组合。较大的企业用户和密码可以统一管理采用微软活动目录或 openldap 开源工具。动态密码动态口令需要时登录到动态口令系统中即时申请获得密码但如果若干时间内不操作服务器密码则会失效。九、批量更新用户的密码命令 chpasswdchpasswd 命令可从标准输入中读取一定格式的用户名、密码来批量更新用户的密码。这个格式为 “用户名密码”注意用户名必须事先真实存在否则该命令无法为一个不存在的用户设置密码。范例14-17批量修改密码。[rootshy ~]# id oldboy # 确认要修改密码的 oldboy 用户是否存在。 uid996(oldboy) gid1004(incahome) 组1004(incahome),1003(sa) [rootshy ~]# id oldgirl # 确认要修改密码的 oldgirl 用户是否存在。 uid1004(oldgirl) gid1004(incahome) 组1004(incahome) [rootshy ~]# chpasswd # 命令行直接输入对应格式。 root:12345678 oldboy:12345678 oldgirl:12345678 # 在新的空行输入 Ctrl D 结束输入。 [rootshy ~]#或者将用户和密码字符串放到文件里执行。[rootshy ~]# cat user.txt t: user.txt: 没有那个文件或目录 [rootshy ~]# touch user.txt # 新建一个文件用于存放用户及其对应的密码 [rootshy ~]# vim user.txt # 编辑该文件 root:12345678 oldboy:12345678 oldgirl:12345678 ~ ~ [rootshy ~]# cat user.txt root:12345678 oldboy:12345678 oldgirl:12345678 [rootshy ~]# chpasswd user.txt # 利用输入重定向一次性为所有用户设置预先指定的密码。