我已经玩弄最近使用Ubuntu,NGINX,PHP等。
我希望能够设置 FTP 和用户...我遇到的问题是 FastCGI PHP 在 www-data(用户)下运行,但是当通过一般用户帐户(farinspace)通过 FTP 登录时,文件是使用 farinspace 作为所有者/组写入的...
目前我正在使用 vsftpd,但认为 pureftp 更适合在上传时自动设置文件权限。
正确设置 FTP 的最佳方法是什么,能够拥有多个 FTP 用户帐户并正确/安全地为用户设置文件权限,同时允许 PHP 对 FTP 用户创建的文件/目录具有完全的读/写访问权限?
答案1
首先,为每个用户设置单独的 Unix 帐户。将这些帐户与 FTP 服务器关联。虽然实际上,您应该通过 SSH 使用安全 FTP。使用较新版本的 OpenSSH,您可以设置“仅 SFTP”帐户,这些帐户被 Chrooted 到该用户的主目录中。Bam!现在,用户可以安全地登录到他们自己的主目录,而无需查看整个文件系统。文件使用他们自己的用户/组权限进行写入。
然后,您可以设置 FastCGI 以使用单独的用户权限运行。这看起来很复杂,但这里有一个教程:如何设置具有单独权限的 FastCGI
如果您尝试为多个用户设置共享主机,尤其是当他们是“不受信任”的用户时,这可能是最好的方法(尽管最复杂)。这样,就没有人能够使用 PHP 脚本来破坏彼此的文件。
如果您可以接受用户恶意访问其他用户的文件这一事实,您可以继续让 FastCGI 以 www-data 的身份运行。然后,当您设置每个用户的主目录时,将文件归 www-data GROUP 所有。然后,在 chmod 中设置开关位(即 chmod 2770 而不是 770)。这将强制新创建的文件继承 www-data 组所有者并允许 FastCGI 读取/写入它们。
呼!真是啰嗦。在这里发表评论让我知道结果如何!
答案2
我写了一个教程来解释如何设置使用 nginx 和 php-fpm 运行单独 php 进程池的个人用户帐户:
http://themesforge.com/performance/configuring-nginx-php5-fpm-and-user-permissions/
埃德