我需要为文件设置chmod
,以便每个人都可以查看该文件,只有持有它的Web服务器(或PHP脚本)才能覆盖它。
这个设置的正确chmod
是什么?你能解释一下哪些人群?它们对我有用吗?
答案 0 :(得分:0)
通常,该文件应归Web服务器用户所有,或者属于Web服务器用户的组。假设您的Web服务器在www-data
下运行,那就意味着运行:
chmod u+w file.txt # write access for the file's user
chmod ugo+r file.txt # read access for user, group, other
chown www-data file.txt # change owner
或者这个:
chmod g+w file.txt # write access for the file's group
chmod ugo+r file.txt # read access for owner, group, other
chgrp www-data file.txt # change group
如果您希望所有者用户可以写入文件,后者非常有用 - 如果您希望在普通帐户下rsync文件或git pull
,这很常见。
请注意,用户和群组是不同的东西。以上示例利用了“数据”这一事实。是通过安装Apache和' www-data'是一个常见的组,也是同时创建的。是的,它们的名字相同,是两个不同的东西!
你问团队是什么。它通常用作用户的类别,因此例如大学可能有一个名为“学生”的小组。和'员工'。用户可以被添加到任意数量的组中,因此可以将研究学生添加到两者中,例如,因为他们有资格成为两个类别。然后,组的成员资格允许系统管理员在全局范围内授予读写权限,而无需担心单独重置用户。
值得注意的是Web服务器可写入的内容,尤其是普通文档根目录中的文件和文件夹。如果您的网络应用程序存在漏洞,您不希望用户能够通过Web服务器创建PHP文件,否则可能会出现任意远程执行。
要防范这种情况,如果您(例如)只是上传文本文件,请在文档根目录之外执行此操作,这样就无法远程执行。如果要上传图像(需要在doc根目录中),请禁用该目录的PHP引擎。