正常的chmod是什么?

46
在我的网站服务器上,我的文件权限已经非常混乱,我想要将所有内容“重置”回最初状态。我不希望任何用户能够删除我的网站服务器上的任何东西!我只想让他们查看php页面等。
我应该使用哪个chmod?

1
chmod 只涉及系统本地用户,但 Web 服务器使用它来检查“其他人”是否有读取(对于文件)或执行(对于 CGI)的权限。如果没有这些权限,Web 服务器将返回 403 禁止访问。 - Zaffy
6个回答

42
以下是我收集的概述:
用法:chmod <number> <filename>

  • 所有文件的权限设置为644
  • 将所有.htaccess文件的权限设置为644
  • 将所有robots.txt文件的权限设置为644
  • 所有目录的权限设置为711
  • 将含有目录列表(.htaccess Options +Indexes)的所有目录的权限设置为755
  • 将用户可以上传文件的所有目录的权限设置为755(例如:/uploads/)。

解释:

  • 644的意思是:
    • 6:文件/目录的所有者可以读取写入,但不可执行。由于文件不可执行,在此处不需要具备“x”权限(6表示r+w,7表示r+w+x)。
    • 44:文件/目录所属的(使用ls -l查看该组)以及每个人(公共用户)都可以读取该文件,但不能执行或写入它(权限号码4)。
  • 711的意思是:
    • 7:文件/目录的所有者可以读取写入执行。这对于目录是必需的!如果没有“执行”权限,则尝试列出目录时会收到“权限被拒绝”的错误提示。
  • 11: 文件或目录所属的公共用户只有执行权限。这对于你不希望其他人浏览内容但又想让他们访问目录中特定文件的情况非常适用。
  • 755 意味着:
    • 7: 文件或目录所有者拥有读取写入执行权限。
    • 55: 文件或目录所属的公共用户只有读取执行权限,但不能写入。这允许用户查看目录中的文件并阅读这些文件,但不能修改它们。
  • 此外,还有一个交互式在线计算器可供使用以确定要使用的权限:https://chmod-calculator.com/


    32

    应尽可能保持限制性,但不要过分。

    通常情况下,0644 是一个好的选择,它为文件所有者提供读取和写入权限,其他人仅有读取权限。对于目录使用0755。但是,具体要看您的系统设置而定。


    Id 644是否只需要在提到的PHP页面上工作,还是也需要设置可执行位?这可能取决于Web服务器以及它的配置方式。 - Steve Jessop
    1
    不,除非你在做一些非常疯狂的事情,否则你不需要为 PHP 页面设置可执行位。可执行位允许二进制文件被执行,而 PHP 源代码不是可执行二进制文件。 - carl

    20
    如果你想重置所有内容,请执行此命令,并解决后果。通常情况下,对于文件来说,644是一个很好的权限设置,而对于目录来说,711是比较合适的。如果允许目录列表,则使用755。
    $ find /var/www/html \( -type f -execdir chmod 644 {} \; \) \
                      -o \( -type d -execdir chmod 711 {} \; \)
    
    如果你想要更不具侵入性的方案,只需要移除组和“其他人”的写入权限。
    $ chmod -R go-w /var/www/html
    

    6
    我认为文件的标准权限应该是644,而目录的标准权限应该是755

    是的,对于非超级用户 shell 用户和他们在 /home 下的自己的目录来说,这是正确的。 - Chris Reid

    1

    如果您的Web服务器仅提供网页服务,而不允许通过(例如)匿名FTP进行访问,则不正确的文件权限将不允许用户删除文件。

    如果其他人可以通过其他方式(例如SSH)访问您的服务器,请确保除您自己以外的用户未设置写入位。执行:

    find . -exec chmod go-w {} \;
    

    这个命令将限制执行它的所有文件和目录的权限。


    谢谢您的回答,匿名FTP是不允许的,但我不确定人们是否可以在没有它的情况下随意删除页面。 - James

    0
    无论您使用哪种方法,请务必进行彻底的测试,以确保您的 Web 应用程序不依赖于具有特定权限的文件或目录。虽然允许过于宽松的权限可能是不良设计,但有时确实会发生这种情况,因此您可能会破坏应用程序。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接