每当我将新文件上传到我的服务器时,我都必须chown -R apache:apache /dir
确保它可以访问。
有没有更简单的方法解决这个问题?
答案1
最有可能的是,要使文件可访问,实际上需要将其组设置为apache
。您可以通过运行以下命令轻松地为新创建的文件默认设置它:
find /path/to/root/directory/of/website -type d -print0 | xargs -0 chmod g+s
这也会setgid
在所有子目录中设置标志。设置此标志后,在其中创建的任何新文件都将继承其父目录的组。(-print0
选项-0
旨在正确处理文件名中的空格)
运行前请确保文件的所有权正确。如果不确定,你可以用同样的方式修复它:
find /path/to/root/directory/of/website -print0 | xargs -0 chown apache:apache
答案2
以下是你可以使用 VSFTPD 做的事情:
您可以设置以下两个选项vsftpd.conf
:
guest_enable=YES
guest_username=apache
guest_enable
如果启用,则确保全部文件以用户/组身份上传apache
。
请注意,这仅适用于通过 FTP 上传的文件。如果你将 Linux 中的文件复制到 www 目录,这不会调整权限。
这就是为什么,如果您也通过文件系统访问该目录,最好使用chmod g+s
Levans 建议的 -method。
(即)
find /var/www/site/public_html -print0 | xargs -0 chown apache:apache
find /var/www/site/public_html -type d -print0 | xargs -0 chmod g+s
启用访客
如果启用,所有非匿名登录都将归类为“访客”登录。访客登录将重新映射到 guest_username 设置中指定的用户。默认:不
访客用户名
请参阅布尔设置 guest_enable 以了解访客登录的构成。此设置是访客用户映射到的真实用户名。默认:FTP