多年来,我一直在阅读有关超级用户的有用问题/答案,今天轮到我了。我正在玩“lshell”,这是一个用 python 编写的 Linux shell(github 上的 lshell),它允许将用户输入到控制台的命令列入白名单。成功安装后,shell 将被放置在
/usr/bin/lshell
使用以下命令
chsh -s /usr/bin/lshell startup
我将 shell 更改为对名为 startup 的用户处于活动状态。现在用户 startup 登录并执行以下列入白名单的命令
./start.sh
这会启动一个小型 Java 应用程序,该应用程序本身可以在命令行上执行命令。但现在该应用程序可以运行所有可用命令,而无需考虑白名单。一个简单的
which bash
通过 Java 应用程序返回
/bin/bash
作为当前 shell。是否有可能强制用户使用白名单 shell?我认为这不是 lshell 的问题。我尝试使用 rbash 执行相同的过程并得到相同的结果。
提前致谢!