当前位置: 首页 > news >正文

Linux 用户管理知识与应用实践(三:用户组及修改用户密码)

Linux 用户管理知识与应用实践

本章将深入讲解用户管理的知识,并带领小伙伴们实践 Linux 运维中有关用户管理的工作。

六、添加用户组命令 groupadd

在 groupadd 命令后面指定用户组名执行就可以建立新的用户组了。但 groupadd 命令的用途不大,因为 useradd 命令在创建用户的同时会创建与用户同名的用户组,正常情况下都可以满足创建用户组的需求。

1、groupadd 命令语法和常用参数

groupadd [options] [group] groupadd [选项] [用户组]

表 14-12 groupadd 命令的常见参数及说明

2、groupadd 命令实例

在生产环境中,增加用户组的用法一般来说都是非常简单的,比如下面的示例是添加 GID 为 802 的用户组 zumahome。实现代码具体如下:

[root@shy ~]# groupadd -g 802 zumahome [root@shy ~]# tail -l /etc/group zumahome:x:802:

提示:groupadd 的命令在工作场景中的应用绝大多数情况下最多仅限于此。

七、删除用户组命令 groupdel

groupdel 命令用于删除指定的用户组,此命令的使用频率极低,了解一下即可。

groupdel 命令语法和使用范例:

groupdel [group] groupdel [用户组]

说明:groupdel 不能删除还有用户归属的主用户组。

范例14 -12:删除 zumahome 用户组。

[root@shy ~]# grep -w zumahome /etc/group zumahome:x:802: [root@shy ~]# groupdel zumahome # 删除 zumahome 用户组命令 [root@shy ~]# grep -w zumahome /etc/group # zumahome 用户组已经被删除了。 [root@shy ~]# groupdel root # 删除root用户组失败,因为组内的root用户还存在。 groupdel:不能移除用户“root”的主组

八、修改用户密码命令 passwd

passwd 命令可以修改用户密码及密码过期时间等内容,是很常用的命令。普通用户和超级用户都可以运行 passwd 命令,但普通用户只能更改自身的用户密码,超级用户 root 则可以设置或修改所有用户的密码。

1、passwd 命令语法和常用参数

passwd [option] [username] passwd [选项] [用户名]

表 14-13 passwd 命令常见参数及说明

注意

  • root 用户可以修改任何用户的密码,普通用户只能修改自身的密码。
  • root 用户修改密码时,如果不符合系统密码规则,则会给出警告信息,但密码设置仍然有效。而普通用户修改密码时,如果使用的是弱密码,则会给出告警信息,且修改无效。

2、passwd 命令使用范例

范例14-13:修改用户密码的示例。

(1)修改自身用户密码

当只执行 passwd 无任何参数和内容时,表示修改当前执行命令用户自身的密码。具体代码如下:

[root@shy ~]# passwd 更改用户 root 的密码 。 新的 密码: # 输入密码 12345678,系统不会输出用户输入的密码。 无效的密码: 密码未通过字典检查 - 过于简单化/系统化 重新输入新的 密码: # 再次输入密码 123456 passwd:所有的身份验证令牌已经成功更新。

(2)设置及修改普通用户的密码

[root@shy ~]# useradd oldgirl useradd:用户“oldgirl”已存在 [root@shy ~]# passwd oldgirl # 为 oldgirl 用户添加密码 更改用户 oldgirl 的密码 。 新的 密码: 无效的密码: 密码未通过字典检查 - 过于简单化/系统化 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@shy ~]# su - oldgirl # 切换到 oldgirl 用户 上一次登录:二 5月 19 22:00:53 CST 2026pts/0 上 [oldgirl@shy ~]$ whoami oldgirl [oldgirl@shy ~]$ passwd 更改用户 oldgirl 的密码 。 为 oldgirl 更改 STRESS 密码。 (当前)UNIX 密码: 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。

范例14-14:显示账号密码信息。

[oldgirl@shy ~]$ passwd -S oldgirl 只有根用户才能进行此操作。 [oldgirl@shy ~]$ exit 登出 [root@shy ~]# passwd -S oldgirl oldgirl PS 2026-07-05 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

范例14-15:一条命令非人工交互设置密码(生产使用技巧)。

[root@shy ~]# echo "12345678"|passwd --stdin oldgirl # --stdin参数能从标准输入中获取密码。 更改用户 oldgirl 的密码 。 passwd:所有的身份验证令牌已经成功更新。

提示:这个命令用于在工作中批量设置密码。

范例14-16:要求 oldgirl 用户 7 天之内不能更改密码,60 天以后必须修改密码,过期前 10 天通知用户,过期后 30 天禁止用户登录。

[root@shy ~]# passwd -n 7 -x 60 -w 10 -i 30 oldgirl 调整用户密码老化数据oldgirl。 passwd: 操作成功 [root@shy ~]# chage -l oldgirl # -l 参数用于查看账户的信息。 最近一次密码修改时间 :7月 05, 2026 密码过期时间 :9月 03, 2026 密码失效时间 :10月 03, 2026 # 对应 -i 参数,密码过期30天之后停权。 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :7 # 对应 -n 参数 两次改变密码之间相距的最大天数 :60 # 对应 -x 参数 在密码过期之前警告的天数 :10 # 对应 -w 参数

3、生产场景下实用技巧

  • 用户密码要足够复杂,最好是 8 位以上字母(含大小写)、数字、 特殊字符的组合。
  • 较大的企业用户和密码可以统一管理(采用微软活动目录或 openldap 开源工具)。
  • 动态密码:动态口令,需要时登录到动态口令系统中,即时申请获得密码,但如果若干时间内不操作服务器,密码则会失效。

九、批量更新用户的密码命令 chpasswd

chpasswd 命令可从标准输入中读取一定格式的用户名、密码来批量更新用户的密码。这个格式为 “用户名:密码”,注意,用户名必须事先真实存在,否则,该命令无法为一个不存在的用户设置密码。

范例14-17:批量修改密码。

[root@shy ~]# id oldboy # 确认要修改密码的 oldboy 用户是否存在。 uid=996(oldboy) gid=1004(incahome) 组=1004(incahome),1003(sa) [root@shy ~]# id oldgirl # 确认要修改密码的 oldgirl 用户是否存在。 uid=1004(oldgirl) gid=1004(incahome) 组=1004(incahome) [root@shy ~]# chpasswd # 命令行直接输入对应格式。 root:12345678 oldboy:12345678 oldgirl:12345678 # 在新的空行输入 Ctrl + D 结束输入。 [root@shy ~]#

或者将用户和密码字符串放到文件里执行。

[root@shy ~]# cat user.txt t: user.txt: 没有那个文件或目录 [root@shy ~]# touch user.txt # 新建一个文件用于存放用户及其对应的密码 [root@shy ~]# vim user.txt # 编辑该文件 root:12345678 oldboy:12345678 oldgirl:12345678 ~ ~ [root@shy ~]# cat user.txt root:12345678 oldboy:12345678 oldgirl:12345678 [root@shy ~]# chpasswd <user.txt # 利用输入重定向一次性为所有用户设置预先指定的密码。
http://www.jsqmd.com/news/1131799/

相关文章:

  • 茶渍 英文分场景 tea stain(通用)
  • 2026最新8款AI编程工具平替实测深度对比
  • R-CNN系列3大模型演进对比:从53.7%到73.2% mAP的性能跃迁分析
  • NinChat使用介绍系列2:web界面实时资讯搜索
  • RTL8723DU 驱动在 RISC-V 平台(全志D1)的蓝牙功能完整测试与排错指南
  • 黎阳之光自研三维重构引擎,赋能全行业全域透明管理
  • UE4 UMG 渲染优化:SceneCapture 2D 3种渲染模式性能对比与选型指南
  • 面试高频:一致性hash算法?
  • HarmonyKit | 鸿蒙新特性规范:10 个工具页 UI 一致性设计系统
  • C++ 捕获鼠标按键(左/右/中键)和滚轮操作的几种路子
  • YAGEKO雅阁固企业文化理念与未来发展布局
  • 从零开始成为白帽黑客:Web安全漏洞挖掘实战入门指南
  • 企业人才战略规划
  • Grok Build:从构建工具到工作流语义引擎的范式跃迁
  • 基于51/STM32单片机智能马桶控制系统 物联网无线传输红外感应3321(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 《3分钟速成Codex》全网最简单的安装攻略,从0开始,没GPT账号也能轻松上手
  • Home Assistant Android应用mTLS证书闪退问题排查与修复指南
  • ESP-NOW 低功耗设备的可靠唤醒:一个被忽视的时序问题
  • 基于STM32单片机的万年历 闹钟 时间 智能手表/数字时钟系统 定做23(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • CUDA Toolkit 与驱动版本匹配:从 nvidia-smi 到 PyTorch 安装的 4 步避坑清单
  • 你每天用的 Claude Code,可能在偷偷标记你——阿里全员卸载背后的真相
  • AKShare金融数据接口:一站式解决Python量化投资的数据获取难题
  • 计算机考试-C语言计算static 静态变量—东方仙盟 —东方仙盟
  • ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
  • Redis 突然变慢了如何排查并解决?
  • 基于STM32单片机座位管理系统 图书馆智能选座设计4421(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 短剧出海AI翻译实操:从备料到提交翻译任务的完整流程
  • 2026最新5款中文vibe coding平替工具实测深度合集
  • 144、结构化输出:JSON Mode、Function Calling、Grammars 三种方案对比
  • c++ std::Any 用法