9.Linux 提权管理(从零开始学)

发布时间:2026/7/21 23:50:35

9.Linux 提权管理(从零开始学)
大多数时候Linux系统管理员以非特权用户身份登录系统并使用工具暂时获得特权用户root管理系统。1. su 命令示例1su username启动一个非登录shell使用当前的环境设置上一个用户示例2su -l username启动一个登录shell设置了shell环境username 省略时代表切换到root账户。# 不加用户名的 nologin shell [fengkaicentos7 ~ 21:48:53]$ su 密码123 # 很多环境变量仍保留为fengkai用户 [rootcentos7 fengkai 21:48:56]# env | grep fengkai USERfengkai PATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/fengkai/.local/bin:/home/fengkai/bin MAIL/var/spool/mail/fengkai PWD/home/fengkai LOGNAMEfengkai XDG_DATA_DIRS/home/fengkai/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share # 不加用户名的 login shell [fengkaicentos7 ~ 21:49:58]$ su -l root 密码 123 上一次登录日 7月 19 21:48:56 CST 2026pts/0 上 # 所有环境变量都更改为了root用户 [rootcentos7 ~ 21:50:02]# set | grep fengkai [rootcentos7 ~ 21:50:17]# env | grep fengkai [rootcentos7 ~ 21:51:40]# env | grep root USERroot MAIL/var/spool/mail/root PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin PWD/root HOME/root LOGNAMEroot XDG_DATA_DIRS/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share XAUTHORITY/root/.xauthotKKg2 [rootcentos7 ~ 21:51:45]#提示尽可能使用 loging shell 登录。准备一个用户# 添加一个用户 [rootcentos7 ~ 17:06:36]# useradd xiaowang # 设置密码为redhat [rootcentos7 ~ 17:11:15]# echo redhat | passwd --stdin xiaowang 更改用户 xiaowang 的密码 。 passwd所有的身份验证令牌已经成功更新。 [rootcentos7 ~ 17:11:35]# grep xiaowang /etc/passwd xiaowang:x:1005:1006::/home/xiaowang:/bin/bash# 以特定用户身份执行特定命令密码之前设置的redhat [fengkaicentos7 ~ 17:14:36]$ su -l xiaowang -c id 密码 uid1005(xiaowang) gid1006(xiaowang) 组1006(xiaowang) 环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 # 加单引号 fengkaicentos7 ~ 17:16:20]$ su -l xiaowang -c cat /etc/hosts 密码 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # 不加单引号 [fengkaicentos7 ~ 17:17:51]$ su -l xiaowang -c cat /etc/hosts 密码 hello hello # 原因没有把 cat /etc/hosts 当作整体其他使用方法# 创建的文件位置在 ~xiaowang/haha [rootcentos7 ~ 17:19:35]# su -l -c touch haha xiaowang # 无权创建 [rootcentos7 ~ 17:19:40]# su -c touch haha xiaowang touch: 无法创建haha: 权限不够 # 原因nologin shell 执行当前位置不变导致xiaowang用户无法在/root下创建 # 切换 nologin shell 账户 [rootcentos7 ~ 17:21:08]# grep adm /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin [rootcentos7 ~ 17:21:25]# su -l adm -c id This account is currently not available. [rootcentos7 ~ 17:28:27]# su -l adm -s /bin/bash -c id uid3(adm) gid4(adm) 组4(adm) 环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 # 只有 root 用户可以指定 shell [rootcentos7 ~ 17:31:02]# su -l adm -s /bin/bash 上一次登录一 7月 20 17:31:02 CST 2026pts/0 上 -bash-4.2$ -bash-4.2$ exit 登出 # 提示符不正常原因是家目录中缺少bash相关配置文件 # 处理方法如下 [rootcentos7 ~ 17:33:00]# grep adm /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin [rootcentos7 ~ 17:33:46]# cp /etc/skel/{.bash_profile,.bashrc} /var/adm [rootcentos7 ~ 17:38:24]# su -l adm -s /bin/bash 上一次登录一 7月 20 17:36:40 CST 2026pts/0 上 [admcentos7 ~ 17:38:27]$2. sudo 命令从根本上说Linux实现了一个非常粗糙的获得权限模型root 可以做任何事情其他用户与系统相关什么也不能做。su 缺点用户必须知道 root 用户密码获取 root 用户所有权限。未记录用户执行命令。无法以/sbin/nologin的用户身份运行命令。sudo 优点sudo 允许用户以其他用户身份执行特定命令。sudo 需要用户输入用户自己的密码而非他们想访问的用户密码。sudo 执行的命令会记录在/var/log/secure文件中。sudo 语法sudo [-u username] command# 有sudo权限的用户输入自己的密码确认是否是本人在操作 [fengkaicentos7 ~ 19:48:19]$ sudo id [sudo] fengkai 的密码 uid0(root) gid0(root) 组0(root) 环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 # 没有sudo权限的用户 [xiaowangcentos7 ~ 20:10:33]$ sudo id 我们信任您已经从系统管理员那里了解了日常注意事项。 总结起来无外乎这三点 #1) 尊重别人的隐私。 #2) 输入前要先考虑(后果和风险)。 #3) 权力越大责任越大。 xiaowang 不在 sudoers 文件中。此事将被报告。 [xiaowangcentos7 ~ 20:10:56]$sudo 配置[rootcentos7 ~ 20:21:54]# export EDITORvim [rootcentos7 ~ 20:22:09]# visudo # 其中两条记录wheel组中成员可以以任何用户身份执行任何命令 99 ## Allow root to run any commands anywhere 100 root ALL(ALL) ALL # 组以%开头 106 ## Allows people in group wheel to run all commands 107 %wheel ALL(ALL) ALL示例1# xiaowang 记录如下 100 root ALL(ALL) ALL 101 xiaowang ALL(ALL) ALL验证[xiaowangcentos7 ~ 20:11:11]$ sudo id [sudo] xiaowang 的密码 uid0(root) gid0(root) 组0(root) 环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023示例2不需要输入密码情况下直接执行命令。# xiaowang 记录如下 100 root ALL(ALL) ALL 101 xiaowang ALL(ALL) NOPASSWD:ALL验证[xiaowangcentos7 ~ 20:26:37]$ sudo id uid0(root) gid0(root) 组0(root) 环境unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023示例3只能够执行特定命令。# xiaowang 记录如下 100 root ALL(ALL) ALL 101 xiaowang ALL(ALL) /sbin/useradd,/sbin/usermod,/sbin/userdel验证[xiaowangcentos7 ~ 20:30:26]$ sudo id [sudo] xiaowang 的密码 对不起用户 xiaowang 无权以 root 的身份在 centos7.cloud 上执行 /bin/id。 [xiaowangcentos7 ~ 20:35:58]$ sudo useradd wang [sudo] xiaowang 的密码 [xiaowangcentos7 ~ 20:36:05]$ id wang uid1006(wang) gid1007(wang) 组1007(wang)总结在分配命令的时候切记只给用户特定功能的命令例如用户管理相关命令而不是通用功能的工具例如 vim。配置文件路径主配置文件/etc/sudoers正常情况不要修改。从配置文件/etc/sudoer.d/*如果想添加配置在此处添加。示例[rootcentos7 ~ 20:37:49]# echo laowang ALL(ALL) NOPASSWD:ALL /etc/sudoers.d/laowang [rootcentos7 ~ 20:38:42]# cat /etc/sudoers.d/laowang laowang ALL(ALL) NOPASSWD:ALL命令别名[rootcentos7 ~ 20:38:56]# visudo 26 ## Networking 27 # Cmnd_Alias NETWORKING /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhcl ient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/ iwconfig, /sbin/mii-tool # sys组中成员执行以下命令别名中的所有命令 104 # %sys ALL NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS案例配置用户 xiaoniuma 可以以root身份运行vim命令用户 xiaoniuma 将自己提权为 root 用户 - 方法一使用vim将/etc/passwd中用户的uid改为0 - 方法二将sudo规则中vim程序改为bash或者ALL操作过程# 创建用户 [rootcentos7 ~ 20:42:47]# useradd xiaoniuma [rootcentos7 ~ 20:43:28]# echo 123 | passwd --stdin xiaoniuma 更改用户 xiaoniuma 的密码 。 passwd所有的身份验证令牌已经成功更新。 # 配置sudo [rootcentos7 ~]# echo xiaoniuma ALL(ALL) /bin/vim /etc/sudoers.d/xiaoniuma # 切换用户并修改用户id [xiaowangcentos7 ~ 20:36:28]$ su -l xiaoniuma 密码 [xiaoniumacentos7 ~ 20:45:26]$ sudo vim /etc/passwd # 修改 xiaoniuma 的 UID 为0 51 xiaoniuma:x:0:1008::/home/xiaoniuma:/bin/bash # 验证 [xiaoniumacentos7 ~ 20:46:21]$ su -l xiaoniuma 密码 上一次登录一 7月 20 20:21:54 CST 2026pts/0 上 [rootcentos7 ~ 20:46:28]#还原环境# 修改用户id为原来的1001 [rootcentos7 ~ 20:44:54]# vim /etc/passwd 51 xiaoniuma:x:1008:1008::/home/xiaoniuma:/bin/bash # 删除用户 [rootcentos7 ~ 20:51:15]# userdel -fr xiaoniuma # 删除sudo规则 [rootcentos7 ~ 20:51:28]# rm -f /etc/sudoers.d/xiaoniuma3. 提权总结以下是关于 Linux 中su和sudo使用的几条建议优先使用sudo而非susudo允许临时获取管理员权限操作完成后自动退回普通用户状态降低误操作风险而su会直接切换到 root 身份长期保持高权限状态存在安全隐患。限制su的使用范围尽量仅在需要长时间执行多个管理员操作时使用su且完成后立即通过exit退出 root 身份避免在 root 权限下进行日常操作。合理配置sudoers文件通过visudo命令配置sudoers精确控制用户可执行的管理员命令如user ALL(ALL) /bin/apt避免授予无限制的sudo权限。注意命令的完整路径使用sudo时尽量指定命令的绝对路径如sudo /usr/bin/apt update防止因环境变量篡改导致的安全风险。避免在脚本中硬编码sudo密码不要在脚本中直接写入sudo密码如通过管道传递可通过配置sudoers实现特定命令免密执行或使用更安全的权限管理方式。定期审计操作日志sudo的操作会记录在/var/log/auth.log或/var/log/secure中定期检查日志可追踪权限使用情况及时发现异常操作。使用sudo -i替代su进行交互式操作若需要类似su的交互式 root 环境可使用sudo -i它会加载 root 的环境变量同时保留sudo的日志记录功能。4. 综合测试解析以下每个命令作用并且至少使用三个示例说明。1.su 命令使用说明大多数时候Linux系统管理员以正常用户身份登录系统在需要使用root权限时使用su命令暂时获得特权用户root管理系统。需要特权用户root的密码命令通常为su -l root2.sudo 命令使用说明sudo 允许用户以其他用户身份执行特定命令。sudo idsudo 需要用户输入用户自己的密码而非他们想访问的用户密码。sudo idsudo 执行的命令会记录在/var/log/secure文件中必要时候可以查看vim/var/log/secure

相关新闻

必须掌握的GEO排名稳定技巧

必须掌握的GEO排名稳定技巧

2026/7/20 21:16:26

在AI搜索流量成为新公域洼地的今天,许多企业都在探索如何让自己的品牌在生成式引擎中稳定占据推荐位。与传统的SEO不同,GEO(Generative Engine Optimization)更强调内容与AI模型的深度对齐。本文将从实战角度,分享几个…

电商GEO排名必知3大核心技巧,错过血亏!

电商GEO排名必知3大核心技巧,错过血亏!

2026/7/20 21:16:26

随着生成式AI搜索的普及,传统电商流量的玩法正在被颠覆。大批商家还在死磕百度SEO和抖音投流,但一个新的公域流量洼地——AI搜索流量已经形成。如果忽略了GEO(生成式引擎优化),即使在红利期,也可能错失大量…

adb tcpip 5555

adb tcpip 5555

2026/7/20 21:16:26

你得到的错误是因为命令写错了。ADB 切换到网络模式的正确命令是 tcpip 而不是 tcp。 以下是启动无线连接的完整步骤: 方法一:传统方式(需要先插一次数据线) 这是最通用的方法,适用于绝大多数 Android 版本&#xff1a…

跨境电商平台的全球K8s多集群管理:跨洲际网络延迟优化的架构方案与运维自动化

跨境电商平台的全球K8s多集群管理:跨洲际网络延迟优化的架构方案与运维自动化

2026/7/21 23:48:08

跨境电商平台的全球K8s多集群管理:跨洲际网络延迟优化的架构方案与运维自动化 一、背景与问题 跨境电商平台面向全球用户,北美、欧洲、东南亚三大核心市场的访问延迟差异显著。某跨境电商在2025年的实测数据显示:用户从东南亚访问北美集群的…

行业AIOps能力的差异化设计:金融、电商、游戏与物联网四大行业的运维AI个性化策略

行业AIOps能力的差异化设计:金融、电商、游戏与物联网四大行业的运维AI个性化策略

2026/7/21 23:48:08

行业AIOps能力的差异化设计:金融、电商、游戏与物联网四大行业的运维AI个性化策略 一、背景与问题 AIOps作为一个通用技术概念,其核心能力包括异常检测、根因分析、故障预测与自动修复。然而,不同行业的业务特征对AIOps能力的需求差异极大——…

证券交易系统的AIOps实时监控:毫秒级延迟要求下的异常检测与自动止损机制设计

证券交易系统的AIOps实时监控:毫秒级延迟要求下的异常检测与自动止损机制设计

2026/7/21 23:48:08

证券交易系统的AIOps实时监控:毫秒级延迟要求下的异常检测与自动止损机制设计 一、背景与问题 证券交易系统对延迟的容忍度极低,核心交易链路的响应时间通常要求在毫秒级别。在2025年某券商的实际运维中,一次因网关组件内存泄漏导致的延迟抖动…

HarmonyOS应用开发实战:小事记 - 用户偏好存储 @ohos.data.preferences:Preferences 的键值对读写与异步初始化

HarmonyOS应用开发实战:小事记 - 用户偏好存储 @ohos.data.preferences:Preferences 的键值对读写与异步初始化

2026/7/21 23:48:08

前言 ohos.data.preferences 是 HarmonyOS 提供的轻量级键值对存储,适用于存储用户偏好设置、应用配置等小型数据。与关系型数据库不同,Preferences 使用更简单的键值对模型,适合存储单个配置项。本文以小事记(xiaoshiji_ohos_ap…

计算机毕业设计之医院预约挂号管理系统

计算机毕业设计之医院预约挂号管理系统

2026/7/21 23:48:08

在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括医院预约挂号管理系统的网络应用,在外国医院预约挂号管理系统已经是很普遍的方式,不过国内的医院预约挂号管理可能还处于起步阶段。医院预约挂号管理系…

AI 辅助的代码迁移:jQuery 到 React 的自动化重构策略与风险评估

AI 辅助的代码迁移:jQuery 到 React 的自动化重构策略与风险评估

2026/7/21 23:38:07

AI 辅助的代码迁移:jQuery 到 React 的自动化重构策略与风险评估 将老旧的 jQuery 项目迁移到 React,是前端团队最头疼的工作之一。这类项目通常代码量大(10 万行起)、业务逻辑隐式(散落在 DOM 操作和事件绑定中&#…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/21 5:45:57

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/21 9:56:14

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/21 3:09:32

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

GraphRAG Local + Ollama:微软知识图谱本地化

GraphRAG Local + Ollama:微软知识图谱本地化

2026/7/21 0:06:35

普通 RAG 有个老毛病:你问它「这堆文档整体在讲什么」,它答不上来。因为它只会把问题切成向量,去几十个文本块里捞最相似的几段拼给模型看。可「整体讲什么」这种问题,答案根本不在任何单独一段里——它散在全篇的联系里。 微软的…

AI 数据产品化思考:让分析能力变成可售卖的数据服务

AI 数据产品化思考:让分析能力变成可售卖的数据服务

2026/7/21 0:06:35

AI 数据产品化思考:让分析能力变成可售卖的数据服务 大家好,我是朱大喜。这周一直在复盘具体的项目和技术,最后一篇聊点不一样的东西——数据产品化。做了这么多年数据分析,我发现一个规律:能卖出去的从来不是"分…

基于人机协作的 AI 研发新体系架构:从 Harness 工程到 Loop 工程实践

基于人机协作的 AI 研发新体系架构:从 Harness 工程到 Loop 工程实践

2026/7/21 0:06:35

本文完整呈现了企业级 AI Coding 落地的核心方法论:从 Harness 工程的微观/宏观定义,到 Loop 工程的六大构建模块,再到基于 SDD(规范驱动开发)的工程化落地路径。干货较多,建议收藏细读。 我从 22 年开始就…