Debian

sftp 上的符號連結和 filezilla

  • February 6, 2016

我對 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 文件夾:

Filezilla

但是當我嘗試打開它時,我得到了這個:

打開

我做錯了什麼?

很可能 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/usernamechroot 上下文中的子目錄)。

作為一種解決方案,您可以關閉 chroot(但這會產生其他安全隱患,主要是 SFTP 使用者可以完全控制您的文件系統)。您可以將 /var/www 循環掛載到 /home/username/www 中(類似於mount --bind /var/www /home/username/www(檢查您的文件mount),它應該可以在 chroot 下正常工作)。您還可以使用 sshd_config 文件從 chroot 中排除該特定使用者(儘管同樣具有安全隱患)。

我會先嘗試綁定安裝。

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