Java程序(类> .jar)作为Unix shell(代替sh/bash)?

IPv*_*tch 5 java unix bash shell exec

我正在寻找运行Java程序(编译类> .jar文件)作为我的Unix shell.基本上,我不希望涉及sh或bash,因为那时用户可以从我的Java程序中弹出/挂起并访问unix shell.

这可能吗?

我需要使用jail/chroot吗?

是编辑/ etc/shells并将java -jar ...命令放在那里这么简单吗?

或者,如果我必须使用sh/bash,我可以在java/vm到期或卸载时自动退出shell(因此没有人可以将Java应用程序转移到bash/sh shell本身)吗?

tha*_*guy 2

第一步:创建一个包装 shell 脚本/usr/bin/myjavashell

#!/bin/sh
exec /usr/bin/java -jar /usr/local/whatever/file.jar
Run Code Online (Sandbox Code Playgroud)

第二步:使其可执行:chmod +x /usr/bin/myjavashell

第三步:添加/usr/bin/myjavashell/etc/shells.

第四步:将其设置为用户的登录 shell chsh -s /usr/bin/myjavashell youruser

可选步骤五:在 中/etc/ssh/sshd_config,禁用您不希望用户能够执行不需要 shell 的任何其他选项,例如 tcp 转发:

Match User youruser
AllowTcpForwarding False
Run Code Online (Sandbox Code Playgroud)