堡垒机里 `su - oracle` 被拦截,怎么绕过限制切换用户

笔者最近在堡垒机上遇到一个很典型的问题:默认只能通过 root 用户登录,登录后想切到 oracle 用户,结果 su - oracle 直接被拦住了。这篇文章记录一下现象和解决办法。

01 | 问题现象

在堡垒机里,默认只能选择通过 root 用户登录。登录成功之后,笔者想切换到 oracle 用户,于是执行:

bash 复制代码
su - oracle

回车后并没有提示输入密码,而是直接报错:

bash 复制代码
BH:Command is not permitted

看起来像是被某种安全策略限制住了,不允许切换到其他用户。

02 | 原因判断

从报错信息 BH:Command is not permitted 来看,堡垒机对命令做了拦截。它识别到的是 su 这个命令本身,于是直接拒绝执行。

也就是说,限制针对的是命令的调用方式,而不是切换用户这个动作本身。

03 | 解决办法:使用 su 的全路径

既然直接写 su 会被拦截,那可以换一种调用方式------使用 su 的全路径。

先确认 su 的完整路径:

bash 复制代码
which su

输出结果:

bash 复制代码
/usr/bin/su

然后用全路径执行用户切换:

bash 复制代码
/usr/bin/su - oracle

这次成功切换到了 oracle 用户。

04 | 小结

遇到堡垒机提示 BH:Command is not permitted、不让执行 su - oracle 时,可以尝试用 su 的全路径来调用。核心思路就是:先 which su 找到真实路径,再用 /usr/bin/su - oracle 完成切换。

关注我,和AI一起成长~

相关推荐
qq_401700412 小时前
Linux设备树详解
linux·运维·服务器
云梦谭3 小时前
让 Linux 主动连接 Windows:配置 Windows 11 SSH 服务端
linux·windows·ssh
刚入门的大一新生3 小时前
Linux-信号
linux·运维·服务器
GeW7 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux
mounter6258 小时前
深入理解 gccrs:GCC 如何实现 Rust 编译器,以及编译 Linux 内核面临的挑战
linux·驱动开发·rust
垚垚学技术_聚焦云原生8 小时前
Ansible Playbook 进阶:when 条件、loop 循环、handlers 触发器落地
linux·ansible·自动化运维·devops
无足鸟ICT9 小时前
【RHCA+】type命令(判断命令类型)
linux·ssh·bash
咸鱼梦想家π9 小时前
Linux开发工具(下)
linux·运维·服务器
LHICOD9 小时前
Linux-1
linux·ip·vmware·虚拟机·cmd·ping
丰锋ff10 小时前
用户管理命令
linux·运维·服务器