我有一个web服务器,我正在上传文件使用FTP客户端。因此,文件的所有者和组是从上传期间使用的用户获取的。
现在,我必须让web服务器(apache/apache)可以写这个文件。
一种方法是将上传文件的所有者和组更改为apache/apache,但这样我就不能使用FTP帐户修改文件。另一种方法是授予文件777权限。
这两种方法似乎都不是很专业,也有点冒险。还有其他选择吗?在Windows中,我只需向文件中添加另一个用户即可。类似的事情能在Linux上做吗?
发布于 2010-08-09 09:07:36
您可以更改文件组:
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发布于 2010-08-09 09:38:44
允许一组用户维护一组文件是一回事:您只需将它们添加到一个公共组中,并将现有文件和目录的所有权设置到该组中,然后在任何目录上设置粘性组位(在默认情况下,该组应将文件添加为可写文件)。
现在,我必须使这个文件可以被web服务器写入。
您需要非常小心和非常有选择性地确定哪些文件可由etc服务器写入,以避免出现代码注入问题--不要将webserver uid添加到上面定义的用户组中--将这些文件与网站上的其他内容完全分离(即在一个单独的目录中禁用所有cgi / php等),最好完全在文档根目录之外。大多数FTP服务器允许您设置上传权限(文件为0666,目录为0777 )和/或设置目录上的其他粘性位。
结果表明,C.
发布于 2010-08-09 12:39:32
要使setfacl工作,分区必须使用“acl”选项挂载。
https://serverfault.com/questions/168400
复制相似问题