我找不到在UNIX操作系统下设置网页文件的最佳方式。
我有在Centos操作系统上运行的Apache,我把我的根目录放在/ var / www / html下
这是一个例子:
/var/www/html 750 ssh-user apache /project_a 750 ssh-user apache /normal_folder 750 ssh-user apache /upload_folder 770 ssh-user apache /project_b 750 ssh-user apache
我对所有者(ssh-user)进行完全控制,只能读取组用户(apache组)。 对于上传文件夹,我设置了770个可以在里面写东西的用户组。
什么是SSH用户? 这是我用SSHlogin的用户。
这些设置是好的,但有时我恼火,因为我需要通过做重新设置文件权限
chmod 750 -R project_a chown ssh-user:apache project_a
每次我使用FTP创build新的文件/上传,我需要执行这些命令。
所以我的问题:
– 我的文件所有权是否正确设置?
– 如何文件许可?
– 你使用任何工具来pipe理这个文件的权限? 我听说facl可以做到这一点优雅
– 有人用卡皮斯特拉诺? 任何提示文件的权限和所有权?
多谢你们!
我的文件所有权是否正确设置? /如何文件许可?
我们不能告诉你 – 这取决于你的政策。 但我不会用这个模型,因为它不允许多个用户来pipe理文件。 但如果这不是你的考虑,那么这可能是一个合理的方法。
如果您不得不更改权限,那么推测“apache”不是ssh-user的主要组。 在更改任何文件之前,您可以尝试“sg apache”,或者您可以在目录上设置粘滞位(强制使用目录的组所有权创build新文件),例如
chown -r ssh-user:apache project_a chmod -R g+s project_a
我听说facl可以做到这一点优雅
我已经看到使用ACL创build的太多的垃圾,推荐它们用于文件系统权限。
然而,更简单的解决scheme可能是将文件和目录设置为“others”(包括apache)可读,而不用担心组的所有权。
它也值得检查你的FTP服务器是否允许你改变你的umask 。
更好的是,不要使用FTP。
如果您编写/修改file upload脚本,以便它们设置适当的权限(如777或750),则可以解决问题。
我们遇到了使用apache:apache创buildfile upload的问题,因此如果使用SSHlogin,用户无法删除移动文件。 为了解决这个问题,我们修改了上传脚本,以便他们在上传到777之后也可以修改文件的权限,以便使用SSH的用户可以修改/删除/移动文件。
所有这一切当然是你有一个非常值得信赖的环境,否则777权限是非常糟糕的select。
我会将我的用户和其他需要pipe理“web”文件的用户添加到apache或www-data组。 (这取决于您的发行版。)然后确保该组具有对文件/目录的写入权限。