新手怎么通过配置Bash环境变量防止恶意用户进行命令行路径劫持

小雪酱_7262

小雪酱_7262

2026-05-18

835人浏览

原创

核心是切断攻击者篡改path的路径:优先用/etc/environment固定path(由pam加载、不可被shell覆盖),锁定用户启动文件权限,禁用/etc/profile.d/中动态拼接,关键操作强制使用绝对路径并运行时校验。

新手怎么通过配置bash环境变量防止恶意用户进行命令行路径劫持

防止命令行路径劫持,核心不是“多设几个变量”,而是切断攻击者篡改 PATH 的路径。新手最容易被利用的环节是用户级启动文件(如 ~/.bashrc)和系统级脚本(如 /etc/profile.d/ 中的不安全脚本),攻击者常通过写入恶意 export PATH=... 来前置伪造目录,从而让 ls、curl 等常用命令被替换成后门程序。

优先用 /etc/environment 固定关键变量

这是最抗劫持的方式——它由 PAM 模块直接加载,不经过 shell 解析,无法执行命令,也不受用户文件影响。

  • 编辑 /etc/environment(需 root 权限),只写严格格式:PATH="/usr/local/bin:/usr/bin:/bin",等号两边**不能有空格**,不支持 $PATH 引用或拼接
  • 确认 PAM 已启用:检查 /etc/pam.d/common-session 是否含 session required pam_env.so(Ubuntu/Debian 默认开启;RHEL/CentOS 需手动添加)
  • 重启登录或新开终端生效,之后所有用户都会从这里获得初始 PATH,且无法被 unset 或 export 覆盖

锁定用户启动文件权限,阻断覆盖入口

攻击者一旦拿到普通用户权限,第一件事就是往 ~/.bashrc 里加恶意 export。必须剥夺其修改权。

镝数图表
镝数图表

一款AI数据处理工具,主要用于简单好用的数据可视化工具,适合需要提升相关任务效率的用户。

下载
  • 对已有用户,运行:chmod 644 ~/.bashrc ~/.profile && chown root:root ~/.bashrc ~/.profile
  • 清理 /etc/skel/ 下的默认模板(如 skel/.bashrc),或同样设为 root:root 且 644,避免新建用户继承风险
  • 检查 ~/.bash_profile 和 ~/.profile 是否存在冗余的 source ~/.bashrc 或重复 export PATH,删掉或注释

谨慎使用 /etc/profile.d/,杜绝动态拼接

这个目录下的脚本按字母顺序执行,容易被用户自定义脚本覆盖,也容易因命名不当被绕过。

  • 只放必要脚本,命名加数字前缀(如 01-secure-path.sh),确保早于用户可能创建的 99-custom.sh
  • 脚本内禁止出现:export PATH="$HOME/bin:$PATH"、$(whoami)、source ~/.env 等任何引用用户可控内容的写法
  • 设置只读:chmod 644 /etc/profile.d/01-secure-path.sh,并用 chown root:root 锁定所有权

运行时验证与最小化 PATH

配置再严,也不能完全信任环境变量。关键操作应主动校验。

  • 在重要脚本开头加入检查:if [[ ":$PATH:" != *":/usr/bin:"* ]]; then echo "PATH corrupted!" >&2; exit 1; fi
  • 敏感操作(如 sudo、ssh、curl)尽量用绝对路径调用:/usr/bin/curl 而非 curl
  • 定期检查异常 PATH 项:echo $PATH | tr ':' '\n' | grep -E '^/tmp|^/var/tmp|^\.' ,发现可疑路径立即排查

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

环境变量

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4945

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

415

21

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4210

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3573

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2793

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6850

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6502

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3733

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3245

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Gradle 安装与环境配置指南
Gradle 安装与环境配置指南

共0课时 | 0人学习

Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

PHP基础-环境/变量/函数等
PHP基础-环境/变量/函数等

共57课时 | 18.2万人学习