我希望将 Java 程序(编译类 > .jar 文件)作为我的 Unix shell 运行。基本上,我不希望涉及 sh 或 bash,因为这样用户就可以退出/暂停我的 Java 程序并访问 unix shell。
这可能吗?
我需要使用 jail/chroot 吗?
是否像编辑/etc/shells 并将 java -jar ... 命令放在那里一样简单?
或者,如果我必须使用 sh/bash,我能否在我的 java/vm 过期或卸载时自动退出 shell(这样就没有人可以将 Java 应用程序转义到 bash/sh shell 本身)?
最佳答案
第一步:创建一个包装器 shell 脚本 /usr/bin/myjavashell
:
#!/bin/sh
exec /usr/bin/java -jar /usr/local/whatever/file.jar
第二步:使其可执行:chmod +x/usr/bin/myjavashell
第三步:将/usr/bin/myjavashell
添加到/etc/shells
。
第四步:使用 chsh -s/usr/bin/myjavashell youruser
将其设置为用户的登录 shell。
可选步骤五:在 /etc/ssh/sshd_config
中,禁用任何您不希望用户能够执行的不需要 shell 的附加选项,例如 tcp 转发:
Match User youruser
AllowTcpForwarding False
关于Java 程序(class > .jar)作为 Unix shell(代替 sh/bash)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21563318/