- FTP账户的访问权限:即这个FTP账户可以访问服务器的哪些目录,是仅仅能访问自己的网站目录,还是可以访问整个服务器文件系统。
- FTP账户对目录的操作权限:即这个FTP账户在它被允许访问的目录里,可以进行哪些操作,比如上传、下载、删除、重命名文件等。
下面我将分步详细讲解如何在WDCP中设置这些权限。

第一步:理解WDCP的FTP权限设计
在开始设置之前,先理解WDCP的一个核心安全设计理念:
- 沙箱机制:为了安全,WDCP默认为所有新建的FTP账户创建了一个“沙箱”环境,这意味着,即使你用FTP账户登录,它也无法看到或访问服务器上的其他用户目录、系统目录等。
- 网站根目录绑定:WDCP会将FTP账户的访问路径自动限制在它所绑定的网站(虚拟主机)的根目录下,一个FTP账户绑定了
www.example.com这个站点,那么它登录后,看到的目录就是/www/web/www.example.com/。
大部分情况下,你只需要在“添加FTP账户”时正确选择绑定的网站,权限就已经设置好了,但如果需要更精细的控制,就需要进行后续的调整。
第二步:添加/修改FTP账户并设置基础权限
这是设置FTP权限的第一步,也是最关键的一步。
-
登录WDCP控制面板
(图片来源网络,侵删)使用你的管理员账号和密码登录到WDCP的后台管理界面。
-
进入FTP管理
- 在左侧菜单栏中找到并点击
FTP管理。
- 在左侧菜单栏中找到并点击
-
添加新的FTP账户
- 点击页面右上角的
添加FTP按钮。 - 你会看到如下设置项:
- FTP账号:输入你想要的FTP用户名(
myuser)。 - 密码:设置一个强密码。
- 确认密码:再次输入密码。
- 所属网站:这是设置权限的核心! 从下拉菜单中选择这个FTP账户将要管理的网站,如果你希望这个账户只能访问
www.example.com的文件,就在这里选择它。 - 目录权限:这里可以设置对该目录的操作权限,通常有以下选项:
读写:最常用的权限,允许上传、下载、删除、修改文件和目录。只读:只能查看和下载文件,不能修改或删除。禁止访问:禁止访问任何目录(通常用于不分配网站目录的特殊账户)。
- 备注:可以填写一些备注信息,方便管理。
- FTP账号:输入你想要的FTP用户名(
- 点击页面右上角的
-
保存设置
(图片来源网络,侵删)- 点击
添加按钮,系统会自动创建FTP账户,并将其家目录指向所选网站的根目录(/www/web/www.example.com/)。
- 点击
至此,一个基础的、安全的FTP权限已经设置完成。 该用户登录后,将只能看到并操作其绑定的网站目录下的内容。
第三步:高级权限调整(可选)
如果默认的网站目录绑定不能满足你的需求,你可以进行更高级的调整,你希望一个FTP账户可以同时管理多个网站,或者只能访问某个特定的子目录。
场景1:让FTP账户访问自定义目录(而非网站根目录)
默认情况下,FTP账户的家目录是它所属网站的根目录,如果你想让它访问一个其他路径,/www/backup/,你需要修改它的配置文件。
-
找到FTP配置文件
- FTP账户的配置文件通常位于
/etc/vsftpd/vconf/目录下,文件名与FTP账户名相同。 - 对于账户
myuser,其配置文件路径是/etc/vsftpd/vconf/myuser。
- FTP账户的配置文件通常位于
-
修改配置文件
- 使用SSH工具登录到你的服务器,然后使用
vi或nano编辑器打开该文件:vi /etc/vsftpd/vconf/myuser
- 在文件中找到
local_root这一行,它当前的值可能类似于/www/web/www.example.com/。 - 将其值修改为你想要设置的路径,
/www/backup/。# ... 其他配置 ... local_root=/www/backup/ # ... 其他配置 ... - 保存并退出文件(在
vi中按ESC,然后输入wq回车)。
- 使用SSH工具登录到你的服务器,然后使用
-
重启FTP服务
- 为了让修改生效,需要重启VSFTPD服务,你可以在WDCP的
服务->VSFTPD页面点击重启,或者在SSH中执行命令:/etc/init.d/vsftpd restart
- 为了让修改生效,需要重启VSFTPD服务,你可以在WDCP的
使用 myuser 这个FTP账户登录,它就会直接进入 /www/backup/ 目录。
注意:请确保你设置的目录(如
/www/backup/)存在,并且FTP用户对该目录有正确的Linux文件系统权限(至少有读和执行权限rx,如果要上传写入,还需要w权限),你可以通过chown -R nobody:nobody /www/backup和chmod -R 755 /www/backup来设置。
场景2:为FTP账户设置多个目录权限
VSFTPD本身不直接支持一个账户登录后看到多个独立的顶级目录,但你可以通过以下两种方式变通实现:
-
方法A:使用符号链接(最常用)
- 在FTP账户的主目录(
/www/backup/)下,创建指向其他目录的符号链接。# 在 /www/backup/ 目录下创建指向网站A和网站B的链接 ln -s /www/web/siteA.com /www/backup/siteA ln -s /www/web/siteB.com /www/backup/siteB
- 这样,FTP用户登录后,在
/www/backup/目录下就能看到siteA和siteB这两个链接,点击即可进入对应的网站目录。
- 在FTP账户的主目录(
-
方法B:修改配置文件(高级) 你可以修改
/etc/vsftpd/vconf/myuser文件,在local_root下面添加其他路径,但这通常需要配合更复杂的PAM配置,不推荐新手尝试,方法A更简单、更安全。
第四步:通过文件系统权限进行最终控制
FTP的最终操作权限,还取决于文件和目录在Linux系统中的权限(rwx)。
- 所有者和组:FTP进程通常以
nobody用户身份运行,为了让FTP能够读写某个目录,该目录的所有者应该是nobody,或者所属组的组成员包含nobody。- 设置网站目录的所有者为
nobody:chown -R nobody:nobody /www/web/www.example.com/
- 设置网站目录的所有者为
- 目录权限:目录至少需要
r-x(读和执行)权限,用户才能进入和查看列表,文件至少需要r--(读)权限才能被下载。- 设置网站目录的权限为
755:chmod -R 755 /www/web/www.example.com/
- 设置网站目录的权限为
- 文件权限:如果需要上传或修改文件,文件需要有
rw-(读写)权限,通常设置为644。- 如果需要上传或执行脚本,文件需要有
rwx(读、写、执行)权限,通常设置为755。
- 如果需要上传或执行脚本,文件需要有
总结与最佳实践
- 常规网站管理:在WDCP的
FTP管理->添加FTP中,正确选择所属网站,并将目录权限设为读写,这是最安全、最推荐的方式。 - 特殊需求:如果需要访问非网站目录,修改
/etc/vsftpd/vconf/下的配置文件,将local_root指向你想要的路径,然后重启FTP服务。 - 最终保障:理解Linux文件权限,确保FTP用户(
nobody)对目标目录有正确的r和x权限,对目标文件有r和w权限,使用chown和chmod命令进行最终控制。 - 安全第一:不要轻易给FTP账户分配服务器的根目录 或系统目录(如
/root,/etc)的访问权限,这会带来巨大的安全风险。
通过以上步骤,你就可以在WDCP中灵活、安全地设置各种FTP权限了。
