“虚拟”外壳,即。在(SSH)登录后在进程内监禁用户

alk*_*kor 4 shell scripting process jails

假设我有一个临时用户,他可以通过 SSH 登录到系统的 bash shell。我还有一个 PHP(尽管这里的语言无关紧要)脚本,它作为一个进程接受各种命令和其他用户输入并根据它们进行操作(本质上是一个“类似 shell”的脚本)。

现在,我想做的是将用户锁定在所说的 PHP 脚本中,即。用户登录后立即运行它(这部分通过 .bashrc 很简单),但同时确保当脚本执行结束时,用户也会自动“踢出”bash 并因此退出 ssh 会话,以便他不能通过 bash 本身做任何事情,并且仅限于 PHP 脚本提供的内容。

这甚至可能吗?如果是,我将如何去做?

更新:根据目前的答案 - 在我的脚本和通过 SSH 登录的用户之间使用 bash 没有任何要求。起初对我来说似乎是必需品。任何仅在 SSH 登录后直接强制用户进入我的脚本的内容都是受欢迎的答案。

spa*_*cvs 6

根据更新的信息,您应该让他们进行私钥/公钥对,并在.ssh/authorized_keys文件中将其设置为仅运行 script.php 文件。你不应该依赖于.bashrc保护,特别是因为它需要初始化环境。