Redhat
SFTP 訪問類似於被監禁的 shell
我有一個關於創建具有某種被監禁的 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創建一個名為sftpusers
groupadd sftpusers
的新組。最後一步是創建一個屬於組sftpusers的使用者:
useradd -g sftpusers -d /var/www/xy/backup/files yourusername passwd yourusername
然後只需重新啟動您的 ssh 服務:
/etc/init.d/sshd restart
您應該已準備就緒。