Centos

禁止使用者與系統進行任何互動

  • June 17, 2018

我正在尋找一種將使用者與系統完全隔離的方法,只允許使用者登錄系統並與打開的程序進行互動。

我可以實現這一點的一種方法是剝離每個文件夾和/或文件的所有權限。

我的目標是讓使用者登錄到我的系統,並且只允許使用者訪問一個 Java 執行檔,然後使用者可以啟動它並進行互動。

有沒有更好的方法來做到這一點?

謝謝

您可能希望將這些使用者的預設 shell 設置為/bin/rbash–restricted bash ( bash -r)。見man rbash。這可以通過命令來完成chsh -s /bin/rbash {USER}

為了防止他們執行您想要的以外的其他命令,請將他們的 PATH 變數環境設置為僅包含您希望他們在其執行的執行檔的文件夾~/.bash_profile

export PATH="$HOME/bin"

編輯:

此時,攻擊者仍有可能突破 rbash。實際上,ssh允許執行遠端命令。他們仍然可以執行類似的操作ssh ... cp /bin/bash bin,將 bash 添加到他們可以執行的命令集中。問題是當直接從 ssh 執行時,似乎 bash(或 rbash)不讀取.bash_profile, nor .profile, nor /etc/profile

連結(2)提出了這個問題的解決方案。man sshd_config描述了所有可以設置的選項/etc/ssh/sshd_config。顯然,腳本~/.ssh/rc(以及/etc/sshrc參見連結(4))在我們需要時執行 - 每當使用者 ssh 一些命令時。但是我沒有測試過。

在這一點上,使用scp.

此外,您需要在/etc/ssh/sshd_config. 這是通過註釋以下行來完成的:

Subsystem sftp       /usr/lib/openssh/sftp-server

連結:

引用自:https://unix.stackexchange.com/questions/450256