2013-11-22 60 views
3

我想要一個用戶ssh並且只能訪問我的CLI。目前,這是通過執行.profile中的一個命令完成的,該命令以另一個用戶身份運行cli(這是在sudoers中完成的,他們只能以該用戶的身份運行CLI而沒有其他任何操作)。我遇到的一個問題是用戶仍然可以用shh運行命令,比如bash,這是我想要限制的。還有一個我希望用戶能夠通過sftp傳輸的檔案。我想我只是讓另一個用戶和他們chroot,所以他們只能訪問該文件。我研究過使用同一個用戶來做這件事,但是在允許使用CLI和限制遠程ssh命令的同時對它們進行chroot,看起來就像是一場噩夢。對不起,如果這是令人困惑的,我很難說出所有這些,並沒有太多的經驗,這種類型的東西。在允許shell訪問的同時限制遠程ssh命令

總之我基本上要:

- 允許用戶爲SSH,但只能從做訪問我的CLI

- 防止用戶任何其他使用ssh

- 允許轉讓的診斷歸檔文件

任何人都有關於完成所有這些最佳方式的一些想法?請讓我知道是否有其他任何有用的信息。謝謝!

+0

您能詳細說明用戶所需的操作嗎?他們上傳文件,運行哪個命令?你可以用cronjob替換訪問嗎?你爲什麼使用sftp?如果你限制bash,那麼用戶將如何運行任何命令? – Dejan

+0

用戶需要能夠通過ssh訪問我的自定義CLI(或者可能不是ssh?我不知道替代方案是什麼)。沒有上傳,沒有其他的命令,但他們需要能夠從機器上傳輸一個特定的文件。我認爲只有sftp和chroot一起工作,這就是爲什麼我打算使用它,我再次向替代品敞開大門。他們不需要在啓動CLI之外運行任何命令。 – user2577911

回答

0

如果用戶通過ssh登錄,他/她被鎖定在chroot jail中。我不知道你做了什麼,所以下面可能無法幫助那麼多:

嘗試:

usermod -s /path/to/CLI username 

/路徑必須是在監獄裏看到,和CLI具有靜態鏈接。如果你使用system()調用來執行像ls這樣的命令 - 而不是使用opendir(),dirent等 - 那麼你必須有一個單獨的可見/ lib目錄庫。例如,可以在本地可見的/ usr/bin目錄中單獨拷貝ls可執行文件或其他命令。在這種情況下,CLI可以動態鏈接。使用

ldd executablefilename 

命令可以確保你可以看到你需要的所有庫。

請考慮在網上查看一些chroot示例/教程。 Google for linux chroot jail