2012-03-02 21 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