Linux 提权管理实战:su 与 sudo 深度解析与最佳实践
在 Linux 系统运维中权限管理是保障系统安全的核心环节。为避免因长期使用 root 超级权限引发误操作或安全漏洞运维人员通常以非特权用户身份登录系统仅在需要时通过专用工具临时获取管理员权限。本文将深入解析 Linux 中最常用的两种提权工具——su与sudo结合实战案例讲解其用法、差异及安全最佳实践助力运维人员构建更安全、高效的权限管理体系。文章目录一、su 命令传统的用户身份切换工具1.核心用法登录 shell 与非登录 shell 的区别2.实战演示不同场景下的 su 用法场景一切换至 root 用户验证环境差异场景二创建测试用户以指定用户身份执行单次命令场景三处理 /sbin/nologin 系统用户的切换问题二、sudo 命令安全可控的临时提权工具1.su 与 sudo 的核心差异对比2.sudo 基础语法与核心用法3.sudo 权限配置精细化管控的核心配置前提使用 visudo 工具编辑配置实战配置案例三种常见权限管控场景进阶配置命令别名Cmnd\_Alias4.权限管控风险警示避免过度授权三、Linux 提权管理最佳实践总结四、总结一、su 命令传统的用户身份切换工具suSwitch User是 Linux 系统中最基础的身份切换命令其核心功能是从当前用户切换到指定用户从而获取对应权限。该命令的关键差异在于是否启动“登录 shell”这直接决定了环境变量的加载方式和操作环境的完整性。1.核心用法登录 shell 与非登录 shell 的区别使用su时是否添加参数-l或简写-会触发两种截然不同的执行模式具体差异如下表所示这也是运维操作中极易混淆且影响安全的关键点命令格式shell 类型环境变量加载规则工作目录变化安全推荐度su [username]非登录 shell继承原用户的所有环境变量仅切换用户身份保持当前工作目录不变⚠️ 不推荐存在权限与环境混淆风险su -l [username]或su - [username]登录 shell完全加载目标用户的环境配置文件如.bash_profile、.bashrc重置所有环境变量自动切换至目标用户的家目录~✅ 优先推荐环境纯净权限边界清晰若省略username参数默认切换至 root 超级用户这是日常运维中最常用的场景需重点关注两种模式的环境差异。2.实战演示不同场景下的 su 用法场景一切换至 root 用户验证环境差异以普通用户laoma为例分别使用两种模式切换至 root查看环境变量的区别# 非登录 shell 模式切换身份但保留原用户环境[cshcentos7 ~]$suPassword:# 输入 root 密码示例redhat[rootcentos7 laoma]# env | grep csh # 残留原用户环境变量LOGNAMEcshMAIL/var/spool/mail/cshPATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/csh/.local/bin:/home/csh/binPWD/home/cshUSERcsh# 登录 shell 模式完全重置为 root 环境[cshcentos7 ~]$su-lPassword:# 输入 root 密码Last login: Mon Nov715:40:31 CST2022on pts/2[rootcentos7 ~]# set | grep csh # 无任何原用户环境变量环境纯净[rootcentos7 ~]#通过上述演示可明确非登录 shell 模式下当前工作目录仍为原用户家目录且环境变量未完全重置易引发权限操作与环境不匹配的问题而登录 shell 模式能确保操作环境与目标用户身份完全一致是更安全的选择。场景二创建测试用户以指定用户身份执行单次命令在运维工作中常需以普通用户身份执行特定命令此时可结合-c参数实现“单次执行、无需切换身份”的需求同时需注意命令的引号包裹规则# 1. 创建测试用户 laowang 并设置密码[rootcentos7 ~]# useradd laowang[rootcentos7 ~]# echo redhat | passwd --stdin laowang # 非交互式设置密码Changing passwordforuser laowang. passwd: all authentication tokens updated successfully.[cshcentos7 ~]$greplaowang /etc/passwd# 验证用户创建成功laowang:x:1001:1001::/home/laowang:/bin/bash# 2. 以 laowang 身份执行单次命令多参数需用单引号包裹[cshcentos7 ~]$su-llaowang-ccat /etc/hosts# 正确用法单引号包裹完整命令Password:# 输入 laowang 密码127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6[cshcentos7 ~]$su-llaowang-ccat/etc/hosts# 错误用法未包裹命令参数解析异常Password: hello hello# 执行结果异常因系统未将cat /etc/hosts视为整体命令场景三处理 /sbin/nologin 系统用户的切换问题Linux 系统中存在部分系统用户如adm、nobody其默认 shell 为/sbin/nologin禁止直接登录。若需临时切换此类用户执行操作需通过-s参数指定临时 shell且该操作仅 root 用户有权限执行# 直接切换报错该账户不可用[rootcentos7 ~]# su -l adm -c idThis account is currently not available.# 临时指定 bash shell 执行命令仅 root 可执行[rootcentos7 ~]# su -l adm -s /bin/bash -c iduid3(adm)gid4(adm)组4(adm)# 临时登录 adm 用户修复提示符异常问题[rootcentos7 ~]# su -l adm -s /bin/bash-bash-4.2$# 提示符异常因 adm 家目录缺少 bash 配置文件# 修复方案复制系统默认配置骨架至 adm 家目录[rootcentos7 ~]# cp /etc/skel/{.bash_profile,.bashrc} /var/adm[rootcentos7 ~]# su -l adm -s /bin/bash上一次登录三7月2316:16:32 CST 2025pts/0 上[admcentos7 ~16:17:55]$# 提示符恢复正常二、sudo 命令安全可控的临时提权工具相较于su命令sudoSuperuser Do是更安全、更灵活的临时提权工具也是企业级 Linux 运维中首选的权限管理方式。其核心优势在于实现了“精细化权限管控”可避免 root 密码共享同时保留完整的操作审计日志。1.su 与 sudo 的核心差异对比为更清晰地理解两者的适用场景现将su与sudo的优缺点、核心特性对比如下帮助运维人员根据实际场景选择合适的工具特性维度su 命令sudo 命令权限获取方式需输入目标用户如 root的密码获取目标用户全部权限需输入当前用户自身的密码仅获取配置文件中授权的特定权限权限管控粒度粗放式要么获取目标用户全部权限要么无权限精细化可指定用户仅能执行特定命令限制权限范围操作审计能力无专门日志记录无法追溯操作人及操作内容所有操作均记录在/var/log/secureCentOS或/var/log/auth.logUbuntu中可完整审计适用场景需长时间执行多个管理员操作且可信任操作人临时执行少量管理员命令、多用户协作运维、精细化权限管控场景安全风险高root 密码易泄露权限无限制误操作风险高低无需共享 root 密码权限可精准限制操作可追溯2.sudo 基础语法与核心用法sudo的核心语法简洁明了通过参数可灵活控制提权范围和执行方式基础语法如下sudo[-u username]command其中-u username用于指定以哪个用户身份执行命令默认以 root 身份执行command为需要执行的具体命令。以下通过实战案例演示其核心用法# 场景1有 sudo 权限的用户临时提权执行命令输入自身密码[cshcentos7 ~]$sudoid[sudo]passwordforcsh:# 输入 csh 自身密码而非 root 密码uid0(root)gid0(root)groups0(root)contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023# 场景2无 sudo 权限的用户执行命令报错并记录审计日志[laowangcentos7 ~]$sudoidWe trust you have received the usual lecture from thelocalSystem Administrator. It usually boils down to these three things:#1) Respect the privacy of others.#2) Think before you type.#3) With great power comes great responsibility.[sudo]passwordforlaowang: laowang is notinthe sudoers file. This incident will be reported.# 操作被记录触发安全告警3.sudo 权限配置精细化管控的核心sudo 的权限管控核心依赖于/etc/sudoers配置文件为避免直接修改该文件引发语法错误导致权限异常Linux 系统提供了专用配置工具visudo该工具会自动检查语法错误。同时为便于管理建议通过/etc/sudoers.d/目录添加自定义配置该目录下的所有文件会被自动加载避免直接修改主配置文件。配置前提使用 visudo 工具编辑配置[rootcentos7 ~]# export EDITORvim # 指定默认编辑器为 vim可选[rootcentos7 ~]# visudo # 打开 sudoers 配置文件自动进行语法检查主配置文件中包含两条核心默认规则其中%wheel表示“wheel 组中的所有用户”组名前需加%符号# 核心默认规则rootALL(ALL)ALL# root 用户可在所有主机以所有用户身份执行所有命令%wheelALL(ALL)ALL# wheel 组用户可在所有主机以所有用户身份执行所有命令实战配置案例三种常见权限管控场景以下以用户laowang为例演示三种常见的 sudo 权限配置场景覆盖“全权限授权”“免密授权”“特定命令授权”满足不同运维场景需求案例1授予用户全权限可执行所有 root 命令配置规则允许laowang在所有主机以所有用户身份执行所有命令需输入自身密码验证。# 方式1直接编辑 sudoers 文件通过 visudolaowangALL(ALL)ALL# 方式2在 /etc/sudoers.d/ 目录创建自定义配置文件推荐[rootcentos7 ~]# echo laowang ALL(ALL) ALL /etc/sudoers.d/laowang[rootcentos7 ~]# cat /etc/sudoers.d/laowang # 验证配置laowangALL(ALL)ALL# 验证权限[laowangcentos7 ~]$sudoid[sudo]passwordforlaowang:# 输入自身密码uid0(root)gid0(root)groups0(root)contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023案例2授予用户免密全权限无需输入密码即可执行所有命令配置规则在案例1的基础上添加NOPASSWD:关键字实现免密提权适用于自动化脚本执行等场景需严格控制授权范围。# 配置免密权限[rootcentos7 ~]# echo laowang ALL(ALL) NOPASSWD:ALL /etc/sudoers.d/laowang# 验证权限无需输入密码直接执行命令[laowangcentos7 ~]$sudoiduid0(root)gid0(root)groups0(root)contextunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023案例3授予用户仅能执行特定命令实现精细化权限管控配置规则仅允许laowang执行用户管理相关命令useradd、usermod、userdel禁止执行其他命令这是企业运维中最安全的授权方式。# 配置特定命令权限需指定命令绝对路径避免环境变量篡改风险[rootcentos7 ~]# echo laowang ALL(ALL) /sbin/useradd,/sbin/usermod,/sbin/userdel /etc/sudoers.d/laowang# 验证权限执行授权命令成功执行未授权命令失败[laowangcentos7 ~]$sudoid# 未授权命令执行失败[sudo]passwordforlaowang: Sorry, user laowang is not allowed to execute/bin/idas root on centos7.wanho.net.[laowangcentos7 ~]$sudouseraddlaozhang# 授权命令执行成功[sudo]passwordforlaowang:[laowangcentos7 ~]$idlaozhang# 验证用户创建成功uid1002(laozhang)gid1002(laozhang)groups1002(laozhang)进阶配置命令别名Cmnd_Alias当需要授权的命令较多时可通过“命令别名”简化配置将同类命令归为一个别名便于管理和维护# 定义命令别名SOFTWARE 代表软件管理相关命令Cmnd_Alias SOFTWARE/bin/rpm, /usr/bin/up2date, /usr/bin/yum# 授权 sys 组用户执行 SOFTWARE 别名及其他系统管理命令%sys ALLNETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS4.权限管控风险警示避免过度授权在配置 sudo 权限时需严格遵循“最小权限原则”避免因过度授权引发安全漏洞。以下以用户xiaoniuma为例演示过度授权可能引发的提权风险及对应的还原方案# 1. 创建测试用户并配置过度授权仅授权 vim 命令[rootcentos7 ~]# useradd xiaoniuma[rootcentos7 ~]# echo 123 | passwd --stdin xiaoniuma[rootcentos7 ~]# echo xiaoniuma ALL(ALL) /bin/vim /etc/sudoers.d/xiaoniuma# 2. 风险演示用户通过 vim 修改 /etc/passwd将自身 UID 改为 0提权为 root[xiaoniumacentos7 ~]$sudovim/etc/passwd# 修改 xiaoniuma 的 UID 为 0root 用户 UID 为 0xiaoniuma:x:0:1001::/home/xiaoniuma:/bin/bash# 3. 验证提权结果切换用户后直接获得 root 权限[xiaoniumacentos7 ~]$su-lxiaoniuma 密码# 输入 xiaoniuma 自身密码[rootcentos7 ~]# # 成功提权为 root安全风险极高# 4. 环境还原方案root 用户执行[xiaoniumacentos7 ~]$sudovim/etc/passwd# 将 UID 改回 1001xiaoniuma:x:1001:1001::/home/xiaoniuma:/bin/bash[rootcentos7 ~]# userdel -r xiaoniuma # 删除测试用户[rootcentos7 ~]# rm -f /etc/sudoers.d/xiaoniuma # 删除过度授权配置核心警示在分配 sudo 权限时切记只授予用户“特定功能的命令”如用户管理、软件安装相关命令而非通用工具如vim、bash避免用户通过通用工具篡改系统配置实现非法提权。三、Linux 提权管理最佳实践总结结合上述实战解析为构建安全、高效的 Linux 提权管理体系总结以下6条核心最佳实践适用于各类企业级运维场景优先使用 sudo谨慎使用 susudo 可实现临时提权操作完成后自动退回普通用户状态大幅降低误操作和权限泄露风险仅在需要长时间执行多个管理员操作时使用 su且操作完成后立即通过exit命令退出 root 身份避免长期保持高权限状态。精细化配置 sudoers遵循最小权限原则通过visudo工具配置权限优先使用/etc/sudoers.d/目录添加自定义配置避免直接修改主配置文件仅授予用户完成工作所需的最小权限禁止授予无限制的ALL权限尤其避免授权通用编辑工具如 vim。使用登录 shell 模式保证环境纯净使用su时优先添加-l或-参数启动登录 shell确保操作环境与目标用户身份一致避免因环境变量继承引发的权限混淆问题。指定命令绝对路径防范环境变量篡改风险配置 sudo 权限或执行提权命令时尽量使用命令的绝对路径如sudo /usr/bin/yum update避免因环境变量被篡改导致恶意命令执行。禁止在脚本中硬编码 sudo 密码避免在自动化脚本中通过管道传递 sudo 密码如echo password | sudo -S command可通过配置NOPASSWD实现特定命令免密执行或使用更安全的权限管理工具如 Ansible 结合 sudo 免密配置。定期审计操作日志及时发现异常行为sudo 的所有操作均记录在/var/log/secureCentOS或/var/log/auth.logUbuntu中运维人员需定期检查日志追踪权限使用情况及时发现非法提权、异常命令执行等安全风险。此外若需类似su的交互式 root 环境可使用sudo -i命令该命令会加载 root 的完整环境变量同时保留 sudo 的操作日志记录功能兼顾便捷性与安全性。四、总结Linux 提权管理的核心是“安全与便捷的平衡”su作为传统的身份切换工具适用于少量、长时间的管理员操作但存在权限粗放、无审计日志的短板sudo则通过精细化权限管控、操作审计、无需共享 root 密码等优势成为企业级运维的首选工具。在实际运维工作中需结合场景合理选择工具严格遵循最小权限原则配置权限定期审计操作日志才能有效防范权限泄露、非法提权等安全风险构建稳定、安全的 Linux 系统运行环境。希望本文的实战解析与最佳实践能为广大运维人员的权限管理工作提供参考与帮助。

相关新闻

基于C++实现人脸过渡(大作业报告)

基于C++实现人脸过渡(大作业报告)

♻️ 资源 大小: 826KB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87453222 人脸过渡大作业报告 基本功能介绍 此次大作业实现了从一张人脸照片到另一张人脸照片的过渡。 使用程序流程: 选取控制点(特征点&a…

2026/10/13 21:30:39 阅读更多 →
协作工具堆不出高效组织:瓶颈在文化而非功能

协作工具堆不出高效组织:瓶颈在文化而非功能

协作工具堆不出高效组织:内网协作新范式的真正瓶颈在文化,而非功能热点现象:协作工具投资热背后的“效率陷阱” 过去几年,企业协作工具市场经历了前所未有的繁荣。从“全员上钉”到“All in 飞书”,从即时通讯到一站式…

2026/10/13 15:28:56 阅读更多 →
混合办公下,私有化部署成就内网安全新基石

混合办公下,私有化部署成就内网安全新基石

混合办公常态化,内网安全边界正在“溶解”:私有化部署为何成为数据主权的新基石? 在一家金融机构的应急指挥中心,一笔涉及数十亿资产的异常交易正在被紧急处置。核心团队通过VPN接入内网,在公共即时通讯工具中快速传递…

2026/10/10 3:56:42 阅读更多 →

最新新闻

PCL点云圆柱体分割实战:RANSAC原理、参数调优与工业应用

PCL点云圆柱体分割实战:RANSAC原理、参数调优与工业应用

做点云处理这几年,我有个特别深的体会:几乎每个项目里需要找的几何元素,翻来覆去就那么几种——平面、球、圆柱。平面最简单,一个法线加一个距离就描述完;球也不难,中心加半径一共四个参数;唯独…

2026/10/13 21:30:25 阅读更多 →
PHP+UniApp开发宠物饲养交流系统实战

PHP+UniApp开发宠物饲养交流系统实战

1. 项目概述最近完成了一个宠物饲养交流系统的开发项目,采用PHP后端UniApp前端的混合开发模式。这个系统包含APP和小程序双端应用,主要解决宠物主人在饲养过程中遇到的交流、知识分享和日常管理需求。从技术选型到功能实现,整个项目走下来积累…

2026/10/13 21:30:25 阅读更多 →
litellm实战:统一大模型API与网关部署全解析

litellm实战:统一大模型API与网关部署全解析

1. 多家大模型API来回切换的痛苦,才是litellm真正的用武之地 过去一年,我先后在几个项目里接入了不同的大模型服务商。说实话,最让人头疼的不是模型效果本身,而是API的调用方式五花八门。有的用 messages 数组传对话历史&#x…

2026/10/13 21:30:25 阅读更多 →
操作系统进程线程模型:状态切换、同步互斥与死锁详解

操作系统进程线程模型:状态切换、同步互斥与死锁详解

2. 状态模型与控制方法:从“三态图”到上下文切换2.1 三态与五态:多出来的“创建态”和“终止态”用来干嘛先解决一个最基础的问题:进程到底有哪几种状态?很多教材开头就给出三态模型——运行态、就绪态、阻塞态——配合那张经典的…

2026/10/13 21:30:25 阅读更多 →
LiteLLM:大模型API统一网关与智能路由中枢

LiteLLM:大模型API统一网关与智能路由中枢

1. 为什么是 LiteLLM:当大模型调用变成“API 路由器”这件事LiteLLM 这个名字第一次出现在我视野里,是在一个凌晨三点的告警群里。某高校实验室部署的推理服务突然响应延迟飙升,监控显示 OpenAI 接口超时率突破 40%,但本地 vLLM 实…

2026/10/13 21:30:25 阅读更多 →
imgsTools图片合并实战:基于Python和Pillow的拼接与批处理

imgsTools图片合并实战:基于Python和Pillow的拼接与批处理

简介:这是一份面向游戏开发者的图片合并工具 imgsTools 完整工程,基于 VALib 图像库与 MFC、GDI 技术实现,用于把多张图片合并为透明 PNG、GIF、JPEG,并生成 Cocos2d 可识别的 .plis 资源清单。PNG 适合精细界面元素与图标&#x…

2026/10/13 21:29:24 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →