Redhat

SFTP 訪問類似於被監禁的 shell

  • December 7, 2012

我有一個關於創建具有某種被監禁的 shell 訪問權限的使用者的問題(實際上,這個使用者只需要sftp access一個特定的目錄)。

場景如下 - 我有一個受 IonCube 保護的現有程式碼,所以我不能真正搞砸它 - 我被它提供的輸出文件夾困住了。它的作用是創建一些文件夾,其中包含一些要在執行期間下載的文件。所有這一切都結束了/var/www/xy/backup/orderbackup/random-name-folder-here/files_here

現在,我想創建一個具有 sftp 訪問權限的使用者/var/www/xy/backup/files/及其下屬,但最好別處。

我是創建一個普通使用者,然後將他監禁到該目錄(儘管我不確定是否可以在那裡創建監獄,因為我無法將/var/www/xy/backup/orderbackup/所有權更改為根本原因,因為它將停止保存文件),或者我應該使用其他一些技術。

我閱讀了有關 RSSH、MySecureShell 等的文章,哪種方法是安全和設置複雜之間的中間地帶(我不是 linux 專家)。

提前致謝!

OpenSSH(也提供 sftp 和 scp 功能)在其更高版本中獲得了 chroot 功能。/etc/ssh/sshd_config基本上你只需要在你的文件中添加類似於這些的行。

Subsystem sftp internal-sftp

Match group sftpusers
    ChrootDirectory /var/www/xy/backup/files/
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

然後使用 command創建一個名為sftpusersgroupadd sftpusers的新組。

最後一步是創建一個屬於組sftpusers的使用者:

useradd -g sftpusers -d /var/www/xy/backup/files yourusername 
passwd yourusername

然後只需重新啟動您的 ssh 服務:/etc/init.d/sshd restart您應該已準備就緒。

引用自:https://serverfault.com/questions/289840