FTP和Apache权限问题


10

我对哪个用户应拥有我的www目录-ftp或apache有问题。当设置为ftp用户时,该用户可以添加,删除和轻松修改文件,但是php文件系统操作会生成权限被拒绝的错误(当然,这是因为它们要求用户是Apache)。但是,如果www目录被指定为apache,则ftpuser将无法执行某些操作,例如文件修改和删除。有人遇到过类似的问题吗?解决办法是什么?谢谢

Answers:


12

这是团体的目的。

您可以将ftp用户添加到apache组中,反之亦然。或者,甚至更好的是,您可以将它们添加到为此专门创建的第三组中。

例如

#groupadd mygroup
#useradd -G mygroup ftp
#useradd -G mygroup apache
#chown -R:mygroup / var / www
#chmod -R g + rw / var / www

这些命令执行以下操作:

  1. 创建新的组“ mygroup”
  2. 将ftp用户添加到mygroup
  3. 将apache用户添加到mygroup
  4. 以递归方式将组所有权授予mygroup / var / www /的内容
  5. 递归授予组读/写权限到/ var / www /的内容

您只需要确保将来添加的文件属于“ mygroup”组,并且对apache和ftp都具有适当的权限即可读取/写入它们。


3
将“ find /var/www -type d -print0 | xargs -0 chmod g+s /var/www”与umask 002组合将确保/ var / www中的新文件和目录继承适当的组和对该组具有r / w访问权限。许多Linux发行版现在默认为002的umask(同那些默认创建为每个新用户的新组)
弗赖海特

这个答案很完美!但是我有一个问题,用户仍然可以查看除此以外的所有其他目录,var/www是否有一种方法可以限制此范围?
maxisme 2015年

3
如果用户已经存在,则第2行和第3行将不起作用(在CentOS 7上)。在这种情况下,请使用usermod例如usermod -G mygroup ftp
nick

简单,不言自明,可以理解!完善!谢谢,@ hobodave!
GTodorov '16

4

您的大部分内容应由apache以外的用户拥有。假设您使用FTP更新内容,则可以将所有文件设置为ftp:apache拥有。我建议将SCP用于SFTP而不是ftp。文件应具有权限644或640,目录应具有755或750。

对于文件和目录,应用程序需要写入才能添加组写入权限。


0

我在构建php页面时遇到了类似的问题,该页面将以不同的名称复制服务器上的文件夹。我通过关闭php安全模式来修复它。


2
出现PHP安全模式是有原因的。完全关闭它不是一个好主意。
user9517
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.