编辑:经过大量挖掘,这几乎肯定是在执行 rbash 之前调用的结果/etc/profile.d/...
,因此不是受限 bash 本身的问题。
似乎有一个简单的 rbash 规避方法,即 SSH 用户只需请求执行 bash 即可。
该环境由受限制的 组成$PATH
,其中只有一小部分命令可用。id
命令不可用,这就是我根据以下内容编写的:
testuser@jumphost:~$ id
-rbash: id: command not found
.. 但是之后 ..
testuser@jumphost:~$ ssh localhost "bash"
testuser@localhost's password:
id
uid=3033(testuser) gid=4033(jumpuser) groups=5033(foogroup) context=jumpuser_u:jumpuser_r:jumpuser_t:s0
..bash 被调用;受限 shell 已被规避。
我曾尝试通过Match Group
/ForceCommand
来实现 rbash 的调用sshd_config
,尽管做为我调用 rbash,能够简单执行 bash 的问题仍然存在。
由于后勤原因,我们默认不为外部用户使用公钥,因此无法"command="
在文件中提供此功能。我们还想为用户提供不仅仅是 ssh 的功能……以及一些其他简单的程序。~/.authorized_keys
kinit
klist
是否有机制可以限制这种行为?
答案1
最后,解决方案是更好地控制成功身份验证和调用 rbash 之间的初始环境。
这是通过一个包装器 shell 实现的,它使用标志--restricted
、、--rcfile ...
等调用一个“干净”的 bash --noprofile
……以及一个在退出之前记录执行尝试的默认情况。
对于这个危言耸听的标题深表歉意......