我有一个Web服务器,我正在使用FTP客户端上传文件。 因为所有者和文件组是从上传过程中使用的用户获取的。
现在我必须让这个文件可以通过web服务器(apache / apache)写入。
一种方法是将所有者和上传文件的组更改为apache / apache,但这样我就无法使用FTP帐户修改文件。 另一种方法是给文件777权限。
这两种方法似乎不是很专业,有点冒险。 还有其他的select吗? 在Windows中,我可以添加另一个用户的文件。 Linux可以做类似的事情吗?
您可以更改文件组:
groupadd webusers usermod -aG webusers the_user_name chgrp -R webusers the_directory chmod g+s the_directory
如果这是基于RedHat的发行版,则可以使用setfacl在没有组的情况下执行此操作,并将其设置为默认情况下发生:
setfacl -R -m user:the_username:rwx directory_name setfacl -d -R -m user:the_username:rwx directory_name
允许一组用户维护一组文件是一件事情:您只需将它们添加到一个公共组中,并将现有文件和目录的所有权设置为该组,然后在任何目录上设置粘性组位(随后将文件应该默认添加为群组可写)。
现在我必须让这个文件可以被Web服务器写入
你需要非常小心和非常有select性的关于什么文件,你可以通过networking服务器写入,以避免代码注入问题 – 不要将networking服务器的用户添加到上面定义的用户组 – 保持这些文件完全独立于网站上的其他内容即在一个单独的目录中,禁用所有的cgi / php等),最好完全在文档根目录之外。 大多数FTP服务器允许您设置上传权限(文件0666,目录0777)和/或设置目录上的其他粘性位。
C。
为了setfacl工作,分区必须用'acl'选项来挂载