授予 FTP 用户访问 CentOS 上多个文件夹的权限

授予 FTP 用户访问 CentOS 上多个文件夹的权限

我正在运行一个网络服务器CentOS Linux 7.2.1511. 我通过Plesk 12.5.30 更新 #29但我也会在需要时通过 SSH 登录并使用命令行。此服务器正在运行多个网站。我有几个不同的承包商,每个承包商都在开发自己的网站。例如

  • ContractorA 负责 WebSite1、WebSite2 和 Website3 的工作。
  • ContractorB 负责 Website1 和 Website4 的工作。

所有网站都存在于其自己的目录中/var/www/vhosts。例如

  • /var/www/vhosts/website1.com
  • /var/www/vhosts/website2.com

如何授予每个承包商访问其各自网站的权限,而不授予他们访问所有网站的权限?我不想在用户之间共享凭据(即为每个网站创建一个 FTP 帐户并将其传递出去)。我还需要它具有可扩展性。我将添加更多承包商和更多网站,并且我需要能够授予任何承包商访问任何网站的权限。

据我所知,我只能为每个用户设置一个主目录。我尝试在主目录中创建符号链接,但 FTP 客户端没有显示或跟踪符号链接。由于可扩展性问题,我认为我无法仅通过文件权限来解决这个问题(但也许我错了)。我看到一些建议将每个文件夹挂载在用户主目录中,但这有点超出了我的能力范围,我不想搞砸我的硬盘。

答案1

“绑定挂载”怎么样?

# mount -o bind /var/www/vhosts/website1.com/ /home/ContractorA/website1.com/
# mount -o bind /var/www/vhosts/website2.com/ /home/ContractorA/website2.com/
# mount -o bind /var/www/vhosts/website3.com/ /home/ContractorA/website3.com/

# mount -o bind /var/www/vhosts/website1.com/ /home/ContractorB/website1.com/
# mount -o bind /var/www/vhosts/website4.com/ /home/ContractorB/website4.com/

卸载与平常相同。

# umount /home/ContractorA/website1.com/
    :

答案2

配置适当的 SELinux 布尔值

列出相关的布尔值

# semanage boolean -l | egrep 'ftp|http' | sort

打开可能暂时适用的布尔值,即

# setsebool httpd_can_connect_ftp on

要永久打开布尔值,请使用 -P 标志,即

# setsebool -P ftp_home_dir on

相关内容