新闻详情

新闻详情

首页 / 资讯中心 / 详情

Linux用户与用户组管理补遗:UID、GID、主附加组与权限审计

发布时间:2026/9/29 20:57:55来源:尧图网络
Linux用户与用户组管理补遗:UID、GID、主附加组与权限审计
1. 为什么用户与用户组这块总要补一刀Linux 的用户和用户组入门时看起来就三条命令的事useradd、passwd、usermod做完就能登录。但真正在生产环境里泡过一段时间就会发现账号管理是个典型的入门一天、精通三年的领域。它不像装个软件那样有明确的装完即止而是随着人员流动、项目更替、权限审计一路演进每次演进都会留下一点历史包袱。我这篇算是之前那篇用户与用户组基础操作的补充专门讲那些第一遍学不会、第二遍踩坑才记住的东西。先说三个我亲身遇到的场景你就知道为什么这块值得单独拿出来补。第一个场景某台业务机上跑着一个三年前的部署脚本脚本里写死了deploy用户的 UID 是 1001。后来运维同事清理账号时把deploy删了过两个月新建了一个实习生账号系统自动分配了 1001。结果这个实习生的账号一夜之间拥有了/data/app下所有历史文件的读写权限因为 Linux 只认 UID不认用户名。第二个场景团队共享目录/srv/share权限设成 2775看着没问题但新建文件的属组老是不对后来发现是用户的主组和附加组没区分清楚。第三个场景离职同事的账号忘了锁半年后 ssh 登录日志里还能翻到异常尝试。这三个坑的共同点是命令你都会但你没有把背后那套编号规则、组归属规则、身份切换规则串起来。串不起来就只能靠试错而试错的成本在服务器上是真金白银。1.1 五个核心文件各管一摊事很多人学用户管理时最大的困惑是为什么改个用户名要动好几个文件因为 Linux 把用户信息拆成了给人看的和给系统算的两套前者明文可读后者加密保护。你要建立一个清晰的心智模型账号信息是分层的每一层有自己的职责和访问权限。文件存什么权限谁能读/etc/passwd用户名、UID、GID、注释、家目录、登录 shell644所有人/etc/shadow密码哈希、密码有效期、账号失效日640 或 000仅 root/etc/group组名、GID、成员列表644所有人/etc/gshadow组密码、组管理员640仅 root/etc/login.defsUID/GID 分配范围、密码策略默认值644所有人这里有个特别容易被忽略的细节/etc/passwd的第二个字段现在几乎都是x它是个占位符真正的内容被搬到了/etc/shadow。早年间密码哈希就是直接写在/etc/passwd里的但那个文件所有人可读任何本地用户都能把哈希拖走离线爆破所以才有了 shadow 机制。理解这段历史你就明白为什么改密码必须用passwd而不是直接编辑文件。另一个细节/etc/group里只记录附加组成员不记录主组成员。这是新手最容易懵的地方。假设alice的主组是alice附加组是devs那么她在/etc/group里只会出现在devs那一行alice组那一行是空的。想看一个用户到底属于哪些组别去 grep 文件直接用id alice它会把主组和附加组一次列全。1.2 UID 是真正的身份证用户名只是标签再强调一遍这个核心观念因为它决定了后面所有操作的思路内核在处理文件权限时比较的是 UID 和 GID 这两个数字跟用户名一点关系都没有。用户名只是给人看的可读标签你把alice改名成alice_new她名下所有文件的归属显示会自动跟着变因为 UID 没变系统只是换了个名字去查。反过来如果两个账号的 UID 相同那在内核眼里它们就是同一个人。这种情况下ls -l显示的是先被查到的那个名字会让人误以为文件归属搞错了。所以排查权限问题时第一步永远是ls -n用数字形式看 UID/GID而不是看名字。这个小技巧后面还会反复用到。理解了这两条我们再往下走就顺了。下面按建号前的准备 → 建号 → 组管理 → 密码与有效期 → 身份切换 → 权限设计 → 删除与批量 → 排查这条链路把每个环节补细。2. 建用户之前先把默认规则摸清楚useradd alice这条命令之所以能什么都不用给就建出一个可登录的账号是因为它背后有一堆默认值。默认值不对后面就得靠usermod一个个往回改很费劲。所以真正高效的做
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于 Spring Boot 的汽车租赁管理系统:技术栈、背景意义与核心代码 2026/9/29 21:43:36

基于 Spring Boot 的汽车租赁管理系统:技术栈、背景意义与核心代码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 1. 项目背景与意义 随着汽车保有量的持续增长和出行需求的多样化,传统汽车租赁行业在车辆调度、订单管理、客户信息维护等方面面临效率低、易出错、数据分散…

阅读更多 →
Worker 超出 CPU 时间限制?把任务拆分来解决 2026/9/29 21:43:36

Worker 超出 CPU 时间限制?把任务拆分来解决

 Worker 超出 CPU 时间限制?把任务拆分来解决 你的 Worker 在小输入上运行得很好。然后你让它处理完整数据集,它跑到一半就死了,报错: Error 1102: Worker exceeded CPU time limit 你的逻辑没有问题——你撞上了…

阅读更多 →
ROS2 参数管理实战:从建包到热更新的完整流程 2026/9/29 21:43:36

ROS2 参数管理实战:从建包到热更新的完整流程

一、建包与环境准备 mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src ros2 pkg create --build-type ament_python demo_pkg --dependencies rclpy参数 作用 备注 --build-type ament_python 指定为 Python 包 C++ 场景用 ament_cmake --dependencies rclpy 预声明依赖 会写入 packa…

阅读更多 →
客户沟通总是遗漏关键信息?这款AI录音转写工具,让每一次洽谈都有据可查 2026/9/29 21:43:36

客户沟通总是遗漏关键信息?这款AI录音转写工具,让每一次洽谈都有据可查

做销售、跑客户、谈商务,最怕什么?不是客户拒绝你,而是明明聊得挺好,回来后发现——几个关键需求点只记得大概,客户提到的某个具体数字完全没印象,连约定的下一步时间都模棱两可。这种场景你大概率遇到过&a…

阅读更多 →
大模型项目如何避免“焊死”在业务里?模型中立架构实战指南 2026/9/29 21:43:36

大模型项目如何避免“焊死”在业务里?模型中立架构实战指南

很多人问我,项目里接了大模型,图的就是快,怎么接完就变成了一堆改不动的屎山?这个问题我太有发言权了。上个月刚帮一个团队做完“手术”——他们的业务系统里,大模型调用、提示词、JSON解析逻辑、参数配置全部焊死在代…

阅读更多 →
业务逻辑全塞在 Service 层,项目上线半年后为什么连加个字段都不敢? 2026/9/29 21:43:23

业务逻辑全塞在 Service 层,项目上线半年后为什么连加个字段都不敢?

业务逻辑全塞在 Service 层,项目上线半年后为什么连加个字段都不敢? 你在面试时肯定听过“高内聚低耦合”。但看看实际的项目代码,大部分情况还是从 Controller 接收 DTO,传给 Service,Service 里写几百行甚至几千行的…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉