2012-03-02 34 views
2

我有一个程序,它使用python的cmd模块作为命令行界面。用Python程序的cmdline接口替换bash shell

现在我希望它在我的Linux服务器上运行,只要有任何普通用户登录到它, 的方式,用户永远不会得到默认的Linux提示符(即他不应该能够杀死程序或发送到背景或任何这样的东西)。

对于安全问题,程序绝不允许用户访问正常提示。用户应该总是使用程序的cmdline来激发所有的命令。 (该程序内置有各种滤波器)。

试图把在/etc/password程序执行命令(与程序执行CMD代替默认的bash shell)用户&还试图把它的用户.bashrc文件,但没有用的;用户仍然可以访问默认提示。

任何指针可以非常有帮助。

+1

为什么这个话题被标记为python? – kamae 2012-03-02 06:12:29

+3

因为用户想运行python shell而不是bash – Nilesh 2012-03-02 06:26:59

+0

提醒我永远不要在你的系统上工作。您是否允许用户在任何阶段使用编辑器?还是你要让他们使用用Python编写的编辑器?如果你让他们使用'vim'或'vi'工作,并且你的系统上有一个shell,那么他们就可以访问这个shell。作为一个例子... – 2012-03-02 06:49:02

回答

1

这可能属于超级用户,但您应该将其添加到/etc/shells文件中,并将用户的登录shell设置为该用户的登录shell。

例如:sudo useradd -d /path/to/newuserhomedir -s /usr/sbin/nologin newusername会创建一个名为newusername的人,其登录shell将是程序/usr/sbin/nologin