我正在尝试创建一个基于控制台的菜单,用于 sshing 到我们网络内的设备,但我不希望用户能够突破该菜单。在这种情况下对话会起作用吗?如果没有我还有其他选择吗?
答案1
为了防止他们突破菜单,请将其设置为他们的外壳chsh
。
答案2
$SHELL
设置登录 shell 是朝着正确方向迈出的一步,但有一个陷阱:它会通过许多脚本使用的设置来干扰运行脚本。这不是dialog
应该的工作。
相反,如果建立一个帐户,其外壳初始化脚本运行您的菜单脚本并使脚本捕获任何键盘中断,并在脚本完成时注销,这将执行所要求的操作。
例如,将其放在末尾.profile
只会让帐户显示一个消息框:
trap "" INT QUIT
dialog --msgbox "Hello World!" 0 0
exit
命令完成后dialog
,帐户将注销。不只是运行dialog
,还可以调用合适的菜单脚本,而无需允许用户访问文件系统。