41

在我的网络服务器上,我的文件权限无处不在,我想将所有内容“重置”回原来的样子。我不希望任何用户能够进来并从我的网络服务器上删除东西!我只是希望他们能够查看 php 页面等。

我应该使用什么 chmod?

4

6 回答 6

37

这是我收集的摘要

  • chmod所有文件644
  • 全部修改。htaccess文件到644
  • chmod 所有robots.txt文件到644
  • chmod所有目录711
  • chmod目录列表(.htaccess 选项+索引)的所有目录755
  • chmod用户可以上传文件的所有目录,到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/

于 2015-03-11T17:47:53.013 回答
32

它们应该尽可能地限制,但仅此而已。

通常0644是一个不错的选择,它赋予所有者读写权限,但其他人只能读取。0755对于目录。但是,它可能取决于您的特定系统设置。

于 2009-03-29T22:23:01.157 回答
19

如果您想重置所有内容,请执行此命令并理清后果。通常 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
于 2009-03-29T22:31:03.230 回答
6

我认为644是文件和755目录的标准。

于 2009-03-29T22:24:16.380 回答
1

如果您的网络服务器仅提供网页服务,不允许通过(例如)匿名 FTP 访问,则错误的文件权限不允许用户删除文件。

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

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

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

于 2009-03-29T22:27:30.197 回答
0

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

于 2009-03-29T22:39:17.017 回答