我是否需要设置" group"使用chmod时的权限?

时间:2014-07-31 18:51:19

标签: php file-permissions chmod

我需要为文件设置chmod,以便每个人都可以查看该文件,只有持有它的Web服务器(或PHP脚本)才能覆盖它。

这个设置的正确chmod是什么?你能解释一下哪些人群?它们对我有用吗?

1 个答案:

答案 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引擎。