news 2026/3/8 3:38:29

【获取root用户访问权限】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【获取root用户访问权限】

一、su 命令(完整切换 vs 非完整切换)

1. 核心参数与执行差异
命令格式切换类型环境变量/工作目录适用场景
su test非登录 shell① 保留原用户(如 root)的环境变量($PATH/$HOME等);
② 工作目录不变(仍在原用户目录);
③ 仅切换 UID/GID,不加载目标用户的配置
临时执行单个命令(如su test -c "ls /home/test"),无需加载目标用户环境
su - test登录 shell① 完全加载目标用户的环境变量(~/.bash_profile/~/.bashrc);
② 工作目录切换到目标用户家目录(/home/test);
③ 等同于“重新登录目标用户”
需要完整使用目标用户的环境/权限(如执行目标用户的脚本)
su -/su - root登录 shell 切换 root加载 root 的完整环境(/root/.bashrc),工作目录到/root推荐的 root 切换方式(完整环境,避免命令找不到)
2. 补充:su 命令的隐藏风险
  • su test非完整切换时,若原用户是 root,目标用户test仍可能继承 root 的高权限环境变量(如$PATH包含/sbin),存在权限泄露风险;
  • 切换后退出:用exitCtrl+D回到原用户,避免多层切换导致权限混乱。

二、sudo 配置进阶

1.sudoers配置的正确方式(禁止直接 chmod 修改!)

chmod u+w /etc/sudoers存在安全风险:若编辑时语法错误,会导致所有 sudo 命令失效,无法恢复。
✅ 正确做法:使用visudo命令编辑(自动语法检查):

# 1. 直接编辑 sudoers 文件(推荐)visudo# 2. 编辑自定义规则文件(更安全,避免污染主文件)visudo -f /etc/sudoers.d/test# 新增 test 用户的规则文件
2.sudoers规则语法
# 格式:用户名 主机=(可切换的用户) 免密标识:可执行的命令 # 示例1:仅允许 test 免密执行重启 httpd 命令 test ALL=(root) NOPASSWD:/usr/bin/systemctl restart httpd # 示例2:允许 test 切换 root 执行任意命令(需输密码) test ALL=(ALL) ALL # 示例3:允许 test 以 apache 用户执行脚本(限定用户+命令) test ALL=(apache) /home/test/run_script.sh
3.wheel组补充(不同系统差异)
  • RHEL/CentOS:wheel组默认配置了 sudo 全权限(visudo%wheel ALL=(ALL) ALL),加入该组即可获得 sudo 权限;
  • Ubuntu/Debian:无wheel组,默认sudo权限在sudo组(usermod -aG sudo test);
  • 验证组权限:groups test查看是否加入目标组,sudo -l查看当前用户的 sudo 权限列表。
4.NOPASSWD的使用场景与风险
  • 适用场景:自动化脚本(如 Ansible 执行时无需手动输密码);
  • 风险:若用户账号泄露,攻击者可直接免密执行高权限命令;
  • 替代方案:配置timestamp_timeout(sudo 密码缓存时间),默认 15 分钟,避免频繁输密码:
    # visudo 中添加(全局生效) Defaults timestamp_timeout=5 # 密码缓存5分钟

三、su - 与 sudo -i 的核心差异

维度su - rootsudo -i
权限验证需输入root 密码(风险高:root 密码泄露则全盘失控)需输入当前用户密码(仅验证自身身份,root 密码无需扩散)
环境加载完全加载 root 的环境(/root/.bashrc模拟 root 登录 shell,加载 root 环境,但保留SUDO_USER等标识(可追溯操作)
审计日志无日志(无法追踪谁切换了 root)所有操作记录到/var/log/secure(如sudo -i会记录test用户执行的命令)
权限管控一旦切换 root,拥有全部权限可通过sudoers限定仅能执行部分命令(即使sudo -i,也可限制)
推荐场景应急操作(临时需要完整 root 环境)日常运维(审计+权限管控,符合安全规范)

四、实操避坑点

  1. sudo 命令执行后权限回退
    示例:sudo echo "test" > /root/test.txt会报错(重定向由原用户执行,无 root 权限),正确写法:
    echo"test"|sudotee/root/test.txt# tee 命令由 sudo 执行,支持重定向
  2. 普通用户 sudo 执行命令的路径问题
    非登录 shell 下,普通用户的$PATH可能不包含/sbin//usr/sbin,需写命令绝对路径(如sudo /usr/sbin/useradd,而非sudo useradd);
  3. sudoers 语法错误恢复
    若误改sudoers导致 sudo 失效,可通过su - root切换后,用visudo -c检查语法:
    visudo -c# 检查 sudoers 文件语法,输出 "parsed OK" 则正常

总结(核心补充要点)

  1. su侧重“用户切换”,sudo侧重“权限管控”,生产环境优先用sudo
  2. 编辑sudoers必须用visudo,禁止直接改权限,避免语法错误锁死 sudo;
  3. su - root需 root 密码(风险高),sudo -i需当前用户密码(更安全);
  4. 精细化配置sudoers,避免给普通用户ALL=(ALL) NOPASSWD:ALL全权限。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/7 13:12:49

突破限制:专业级文件翻译工具DeeplxFile全解析

突破限制:专业级文件翻译工具DeeplxFile全解析 【免费下载链接】DeeplxFile 基于Deeplx和Playwright提供的简单易用,快速,免费,不限制文件大小,支持超长文本翻译,跨平台的文件翻译工具 / Easy-to-use, fast…

作者头像 李华
网站建设 2026/3/4 11:52:01

如何让电脑主动提醒你休息?BreakTimer的科学工作法

如何让电脑主动提醒你休息?BreakTimer的科学工作法 【免费下载链接】breaktimer-app Manage periodic breaks. Avoid eye-strain and RSI. 项目地址: https://gitcode.com/gh_mirrors/br/breaktimer-app 在数字时代,我们与电脑的关系早已超越工具…

作者头像 李华
网站建设 2026/3/4 13:28:39

AI视频生成工具配置专业指南:从需求分析到性能优化

AI视频生成工具配置专业指南:从需求分析到性能优化 【免费下载链接】ComfyUI-LTXVideo LTX-Video Support for ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-LTXVideo AI视频生成技术正在重塑数字内容创作的边界,而高效的工…

作者头像 李华
网站建设 2026/3/4 21:39:56

内存迷雾调查:mimalloc如何破解嵌入式系统的隐形杀手

内存迷雾调查:mimalloc如何破解嵌入式系统的隐形杀手 【免费下载链接】mimalloc mimalloc is a compact general purpose allocator with excellent performance. 项目地址: https://gitcode.com/GitHub_Trending/mi/mimalloc 案件编号:Memory-20…

作者头像 李华