如何允许 ftp 用户访问其根目录之外的文件夹?

如何允许 ftp 用户访问其根目录之外的文件夹?

我正在尝试创建一个可以访问 public_html 上多个文件夹的 ftp 用户,但我不希望他访问 public_html 上的所有文件夹。只允许访问特定的文件夹。

以下是 public_html 的文件夹结构

_ftpdevteam1
_ftpdevteam2
site1
site2
site3
site4
site5
site6
site7
site8

我想要做的是创建可以访问 site1-4 的 ftp 用户 ftpdevteam1。ftpdevteam2 可以访问 site5-8

我尝试了这篇文章中的解决方案 http://www.webhostingtalk.com/showthread.php?t=681872

具体来说这部分

ln -s /home/{username}/public_html/index.html /home/{username}/{ftpusername}/index.html

ln -s /home/{username}/public_html/folder1 / /home/{username}/{ftpusername}/folder1

ln -s /home/{username}/public_html/folder2 /home/{username}/{ftpusername}/folder2

但是当我通过 filezilla 访问时出现了这个...

Status: Retrieving directory listing of "/foldername"...
Command:    CWD /
Response:   250 OK. Current directory is /
Command:    CWD foldername
Response:   550 Can't change directory to foldername: No such file or directory
Error:  Failed to retrieve directory listing

有没有办法编辑 ftp 用户的权限以便他们可以访问文件夹?

我在这篇文章中看到了另一个使用 bind 的解决方案 https://www.hostivate.com/blog/cpanel-ftp-user-access-multiple-folders/

但我在第 2 步看到它说

2. We must create the above folders but in the FTP user directory

这似乎不是一个可行的解决方案,因为我的站点已经创建了文件夹。我对第 2 步的理解是,真正的文件夹需要位于 _ftpdevteam1 文件夹中。

谁有其他方法可以实现我想要做的事情?

谢谢

答案1

据我所知,您需要绑定安装。试试这个:

mkdir /home/{username}/{ftpusername}/public_html
sudo mount --bind /home/{username}/public_html /home/{username}/{ftpusername}/public_html

相关内容