Linux用户与权限管理看这一篇就够了!从零基础到实战,彻底搞懂用户/组/sudo
Linux用户与权限管理从入门到实战零基础也能轻松掌握从“小白懵圈”到“熟练配置”一文搞定用户、组、权限那些事儿一、为什么我们要管用户和权限想象一下你租了一间合租房大门钥匙root密码每个人都能复制今天张三带朋友来明天李四搬走东西最后屋里丢了东西都不知道该找谁。Linux系统如果不做用户管理所有人共用 root 超级管理员后果就是这样没有操作日志——谁动了配置文件查不到人误操作风险极高——一个rm -rf /*可能让整个服务器瘫痪权限无边界——开发、测试、运维都用同一个账号数据库和网站代码随便删用户管理的核心目标让“谁、什么时候、做了什么”清清楚楚同时做到最小权限原则——每个账号只拥有完成自己工作所必须的权限。二、用户信息存在哪三座“档案库”Linux 把所有用户和组的信息存放在三个文本文件中它们就是系统账号管理的“户籍档案”文件存储内容用途/etc/passwd用户名、UID、主组ID、家目录、登录Shell基本账户信息密码已移走/etc/shadow加密后的密码、密码过期策略真正存放密码的地方权限极高/etc/group组名、GID、组成员列表组信息及成员关系⚠️新手注意千万不要用vim直接编辑这些文件必须用系统提供的命令如useradd、usermod来修改否则格式出错会导致无法登录。三、组管理——先把“部门”建好在创建用户之前通常先创建组好比公司先设部门再招人。3.1 创建组 ——groupadd# 创建一个名为 devops 的组sudogroupadddevops# 创建组并指定 GID组ID为 3000sudogroupadd-g3000dba新手常见报错如果你创建组时提示group xxx already exists说明组名已被占用。可以用-f强制忽略或换个组名。3.2 修改组 ——groupmod# 把组名 devops 改为 opssudogroupmod-nops devops# 修改组的 GID 为 4000sudogroupmod-g4000ops3.3 删除组 ——groupdelsudogroupdelops踩坑预警如果某个用户的主组primary group正是这个组那么无法删除该组你必须先把用户的主组改掉或删除用户才能删组。四、用户管理——招人、换岗、离职4.1 添加用户 ——useradd# 最简单的创建Rocky/CentOS 自动建家目录、指定 bashsudouseradddev_user# Ubuntu 必须加上 -m创建家目录和 -s指定Shellsudouseradd-m-s/bin/bash dev_user# 指定 UID、主组、附加组sudouseradd-u2000-gdevops-Gdba,developer app_admin关于主组 vs 附加组新手最晕的主组Primary Group每个用户必须有且只有一个新建文件时默认所属组就是它。附加组Supplementary Groups可以有 0 个或多个用于授予额外权限比如让开发人员临时加入运维组。创建用户时如果不指定-g系统会自动创建一个与用户名同名的组作为主组。常用选项一览选项含义备注-m创建家目录Rocky 可省Ubuntu 必加-s指定登录 Shell如/bin/bash或/sbin/nologin禁止登录-u指定 UID-g指定主组组必须已存在-G指定附加组多个组用逗号分隔-r创建系统用户无家目录不可登录用于运行服务进程4.2 修改用户 ——usermod# 修改用户的 Shellsudousermod-s/bin/bash dev_user# 修改家目录同时迁移数据sudousermod-d/opt/dev_user-mdev_user# 添加附加组千万注意 -a 选项sudousermod-aGdba dev_user# ✅ 追加 dba 组sudousermod-Gdba dev_user# ❌ 会覆盖掉之前所有的附加组新手翻车现场很多人忘记加-a结果用户只剩一个dba组原来在wheel等组里的权限全部丢失。记住-aG是标配-G单独用是重置。锁定和解锁用户# 锁定用户无法登录sudousermod-Ldev_user# 解锁sudousermod-Udev_user锁定后/etc/shadow中该用户密码字段前会多一个!符号。4.3 删除用户 ——userdel# 仅删除用户家目录和邮箱保留sudouserdeldev_user# 删除用户并同时删除家目录和邮箱-rsudouserdel-rdev_user 工作场景中通常建议先备份用户数据再用-r彻底清理避免遗留孤儿文件。4.4 设置密码 ——passwd与chpasswd交互式设置需要输入两次sudopasswddev_user非交互式适合脚本——Rocky 和 Ubuntu 通用echodev_user:MyPass123|sudochpasswdRocky 还支持echo MyPass123 | passwd --stdin dev_user但 Ubuntu 不支持所以推荐统一用chpasswd。五、Linux 权限模型 UGO —— 文件三权分立Linux 中每个文件/目录都有属主User、属组Group和其他人Other三类访问者各自拥有一套读r、写w、执行x权限。5.1 rwx 对文件和目录的“大不同”权限对文件的意义对目录的意义r读可以cat查看文件内容可以ls罗列文件夹内全部资源需配合 xw写可以vim修改内容可以在目录内创建、删除、重命名文件需配合 xx执行可以运行该程序/脚本可以cd进入目录是访问内部文件的前提新手容易犯的错误给目录只赋r权限而没有x导致无法cd进去只能看名字却进不去。5.2 权限表示法字符法rwxr-x---前三位属主rwx、中三位属组r-x、后三位其他人—。数字法将每组 rwx 视为二进制有权限为1无则为0转十进制。rwx 111 7r-x 101 5--- 000 0 → 750。六、修改权限与属主 —— 日常高频操作6.1 修改属主属组 ——chown/chgrp# 只改属主sudochowndev_user project.log# 只改属组sudochown:devops project.log# 等价于 chgrp devops project.log# 同时改属主和属组sudochowndev_user:devops project.log# 递归修改整个目录-Rsudochown-Rdev_user:devops /opt/app/6.2 修改权限 ——chmod字符模式# 给属主添加执行权限chmodux script.sh# 移除属组的读权限chmodg-r secret.conf# 精确设置其他人的权限为只读chmodor public.txt# 给所有人类别赋予读写执行chmodarwx tool数字模式更常用chmod755app.jar# 属主 rwx属组 rx其他人 rxchmod640config.yml# 属主 rw属组 r其他人无chmod750/opt/data# 属主 rwx属组 rx其他人无七、权限掩码 umask —— 新文件默认权限从哪来每次你创建新文件或目录系统都会根据umask值计算默认权限。计算公式文件默认权限 666 - umask目录默认权限 777 - umask查看当前 umaskumask# 输出 0022普通用户可能 0002当 umask 022 时新文件 → 666 - 022 644-rw-r--r--新目录 → 777 - 022 755drwxr-xr-x当 umask 027 时新文件 → 666 - 027 640-rw-r-----新目录 → 777 - 027 750drwxr-x---临时修改umask 027永久修改写入~/.bashrc或/etc/profile。 很多新手以为 umask 是“减掉”的权限实际是“屏蔽”的权限位。例如 umask 为 022就是屏蔽掉属组的写权限和其他的写权限。八、删除文件的本质 —— 为什么需要目录的写权限很多人误以为删除文件需要文件本身有写权限。其实不然删除文件实际上是在父目录中删除该文件的条目文件名与 inode 的映射所以真正要求的是父目录有写和执行权限。实验验证创建一个目录并给满权限里面的文件权限设为 000mkdir/opt/testechohello/opt/test/file.txtchmod777/opt/testchmod000 /opt/test/file.txt用普通用户尝试删除该文件需要普通用户对目录有写权限rm-f/opt/test/file.txt# 成功删除尽管 file.txt 本身是 000反过来如果目录没有写权限即使文件是 777 也删不掉chmod555/opt/test# 目录无写权限rm-f/opt/test/file.txt# 报错 Permission denied结论删除文件看的是目录的权限不是文件本身的权限。九、权限委派 —— su 与 sudo 的正确用法9.1 su —— 切换用户身份sudev_user# 切换用户但环境变量、当前目录保留原用户的su- dev_user# 切换用户并加载目标用户的环境推荐su- dev_user-cls -lh /home/dev_user# 切换并执行一条命令使用su - root需要知道 root 密码并且切换后没有任何审计日志不推荐在生产使用。9.2 sudo —— 临时提权推荐普通用户执行管理员命令时只需在自己密码前加sudo系统会检查/etc/sudoers是否授权。将用户加入管理员组最快速获得 sudo 权限发行版管理员组默认配置Rocky / RHELwheel%wheel ALL(ALL) ALLUbuntu / Debiansudo%sudo ALL(ALL) ALL# Rocky 中加入 wheelsudousermod-aGwheel dev_user# Ubuntu 中加入 sudosudousermod-aGsudodev_user9.3 精细控制 sudo —— 使用visudo编辑/etc/sudoers或单独文件/etc/sudoers.d/xxx推荐后者sudovisudo-f/etc/sudoers.d/custom配置格式用户/组 主机(运行身份) 命令示例# 允许 dev_user 执行任何命令需密码dev_userALL(ALL)ALL# 允许 devops 组成员重启 nginx 且无需密码%devopsALL(ALL)NOPASSWD: /usr/bin/systemctl restart nginx# 禁止某用户修改 root 密码bad_userALL(ALL)ALL,!/usr/bin/passwd root验证权限sudo-l# 查看当前用户被允许的命令sudo-l-Udev_user# 查看指定用户的 sudo 权限十、综合实战为若依项目创建标准化用户体系场景公司新部署了一套若依后台管理系统需要为不同角色分配专属账号和权限。角色账号所属组权限需求应用管理员ruoyi-admindevops可重启 Nginx数据库管理员ruoyi-dbadba可启停 MySQL开发人员ruoyi-devdeveloper可查看应用日志实施步骤1. 创建组sudogroupadddevopssudogroupadddbasudogroupadddeveloper2. 创建用户并加入附加组sudouseradd-Gdevops ruoyi-adminsudouseradd-Gdba ruoyi-dbasudouseradd-Gdeveloper ruoyi-dev# Ubuntu 需加 -m -s /bin/bash3. 设置统一密码非交互echoruoyi-admin:Ruoyi2026|sudochpasswdechoruoyi-dba:Ruoyi2026|sudochpasswdechoruoyi-dev:Ruoyi2026|sudochpasswd4. 配置 sudo 精细权限新建/etc/sudoers.d/ruoyi%devopsALL(ALL)/usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx %dbaALL(ALL)/usr/bin/systemctl start mysqld, /usr/bin/systemctl stop mysqld, /usr/bin/systemctl status mysqld %developerALL(ALL)/usr/bin/tail-f/var/log/ruoyi/*, /usr/bin/cat /var/log/ruoyi/*5. 验证sudo-l-Uruoyi-admin# 应显示可执行 restart 和 status十一、Rocky Linux 与 Ubuntu 差异速查表操作Rocky/CentOSUbuntu创建用户useradd dev_user自动家目录useradd -m -s /bin/bash dev_user非交互密码echo “123”passwd --stdin user管理员组wheelsudo查看 sudo 日志/var/log/secure/var/log/auth.log建议跨发行版时统一使用chpasswd和visudo确保兼容。十二、新手常见报错与解决报错信息原因解决useradd: group xxx does not exist附加组未提前创建先用groupadd建组usermod: group xxx does not exist同上检查组名拼写userdel: user xxx is currently used by process用户正在登录强制踢出或用-fsudo: command not found未安装 sudodnf install sudo/apt install sudopermission denied删除文件父目录缺少 w 权限chmod w父目录chmod: cannot access file文件路径错误或权限不足检查路径及当前身份总结用户管理三文件/etc/passwd、/etc/shadow、/etc/group命令操作是正道千万别手动改。组与主/附加组主组只有一个附加组可多个-aG是追加的好朋友。权限模型 UGOr、w、x 对文件和目录含义不同目录必须有 x 才能进入。删除文件看目录目录有 w 权限就能删和文件本身无关。sudo 胜过 susu 切换无审计sudo 临时提权并记录日志更安全可控。通过今天的实战练习你已经能独立完成用户体系搭建、权限分配和日常运维操作。接下来不妨在自己的虚拟机里动手演练一遍把每个命令敲出来遇到报错再看看本文的“踩坑指南”很快就能熟练于心

相关新闻

C++继承机制深度解析:从内存模型到工程实践

C++继承机制深度解析:从内存模型到工程实践

1. 项目概述:为什么C继承是绕不开的基石如果你写过C,或者哪怕只是看过几行C代码,大概率都见过class B : public A这样的语法。这就是继承,一个听起来简单,但实际用起来却处处是“坑”和“玄机”的概念。很多人学C继承&…

2026/10/31 11:08:59 阅读更多 →
科里奥利力:从旋转参考系到工程应用的力学原理与推导

科里奥利力:从旋转参考系到工程应用的力学原理与推导

1. 项目概述:从“洗菜池漩涡”到“傅科摆”的力学探秘如果你曾留意过家里洗菜池或浴缸放水时形成的漩涡,或者听说过证明地球自转的“傅科摆”实验,那么你已经与科里奥利力打过照面了。这个听起来有些拗口的力,并非像重力或电磁力那…

2026/10/30 10:16:51 阅读更多 →
LaTeX子公式编号与对齐排版实战指南

LaTeX子公式编号与对齐排版实战指南

1. 项目概述:子公式编号的痛点与价值 在撰写理工科论文、技术报告或者任何包含复杂数学推导的文档时,我们经常会遇到一个非常具体且恼人的问题:如何为一组紧密相关的公式中的每一个独立公式,分别打上清晰、有序的编号?…

2026/10/29 16:43:01 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/31 0:19:11 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/31 10:20:19 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/31 10:20:23 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/31 0:59:28 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/31 10:30:19 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/31 9:29:43 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/30 17:32:24 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 11:00:40 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/31 0:09:01 阅读更多 →