如何在shell脚本程序中locking用户?

假设我有一个没有桌面环境的Linux操作系统。 PC启动完成后,会直接向用户显示shellterminal。

我打算编写一个shell脚本程序,并在PC启动后每次自动启动,以便在PC启动后,用户不会看到一个正常的shell提示符,而是看到我的shell脚本程序。

在shell脚本程序中,我将给用户一个选项列表来configuration我的电脑中的东西。 我希望shell脚本程序能够在这台PC上连续运行。

我想locking用户在shell脚本程序,以便他们不能逃到正常的shell提示符并访问文件系统。 只有具有root用户密码的pipe理员才能转到正常的shell提示符并对PC进行更改。

任何人都可以给我一些build议,我怎么能做到这一点?

谢谢。

使自动login用户的loginshell为rbash,并使脚本成为唯一可以运行的东西。 即使他们逃脱剧本,他们也不能做任何事情,除非注销或重新开始剧本。

/etc/rc.local添加对脚本的调用,该脚本在/etc/rc.local的系统服务都已启动之后运行,并在显示login提示之前运行。 该脚本将以root用户身份运行,但没有login用户,因此您可以精确控制在该点发生的事情。 只要你的脚本不退出,用户将无法login和访问一个shell。

getty是处理terminal的程序。 如果你告诉它运行的东西以外的东西像

 getty -l my-sandbox-program-that-is-not-as-powerful-as-the-shell 

你可以更好地控制用户可以做什么。

你也可以添加一个陷阱来捕获你的bash脚本中的CTRL-C。 这样你可以locking人们退出它(也值得赶上CTRL-Z)

http://hacktux.com/bash/control/c