sftp 上的符號連結和 filezilla
我對 debian 很陌生,我正在嘗試設置伺服器。
我創建了一個只能訪問他的文件夾
/home/username
(及其子目錄)的使用者。現在我想將該使用者用於我設置的網路伺服器,並且我已授予他訪問權限,
/var/www
但我無法/var/www
通過 sftp 看到,我做了一個像這樣的符號連結:root@server:/home/username# ln -s /var/www www root@server:/home/username# cd www root@server:/home/username/www# chown username:username *
現在,使用 filezilla,我可以看到這樣的 www 文件夾:
但是當我嘗試打開它時,我得到了這個:
我做錯了什麼?
很可能 SFTP 正在被 chroot,因此目錄 /var/www 對 chroot 監獄中的使用者不可用。
查看
/etc/ssh/sshd_config
並檢查 sftp 指令。你有沒有看到類似的東西:Match group sftp ChrootDirectory /home/%u AllowTcpForwarding no ForceCommand internal-sftp
sshd_config 手冊頁在這裡。
基本上,一旦使用者
/home/username
進入 SFTP,該目錄就會變為/
並且外部的引用/home/username
不可用。事實上,一個符號連結ln -s /var/www /home/username/www
看起來就像你試圖到達的那樣/home/username/var/www
(即,/home/username
現在/
任何引用的連結也/var/www
必須是/home/username
chroot 上下文中的子目錄)。作為一種解決方案,您可以關閉 chroot(但這會產生其他安全隱患,主要是 SFTP 使用者可以完全控制您的文件系統)。您可以將 /var/www 循環掛載到 /home/username/www 中(類似於
mount --bind /var/www /home/username/www
(檢查您的文件mount
),它應該可以在 chroot 下正常工作)。您還可以使用 sshd_config 文件從 chroot 中排除該特定使用者(儘管同樣具有安全隱患)。我會先嘗試綁定安裝。