什么是正常的chmod?
Posted
技术标签:
【中文标题】什么是正常的chmod?【英文标题】:What is the normal chmod? 【发布时间】:2010-10-16 06:44:03 【问题描述】:在我的网络服务器上,我的文件权限无处不在,我想将所有内容“重置”回原来的样子。我不希望任何用户能够进来并从我的网络服务器上删除东西!我只是希望他们能够查看 php 页面等。
我应该使用什么 chmod?
【问题讨论】:
chmod 只是关于系统本地用户,但是网络服务器使用它来检查“其他人”是否有权读取(对于文件)或执行(对于 cgi),如果他们没有,网络服务器将返回 403 禁止. 【参考方案1】:这是我收集的摘要
chmod 所有 文件 到 644 chmod 所有 .htaccess 文件到 644 chmod 所有 robots.txt 文件到 644 chmod 所有目录到711 将所有目录与目录列表(.htaccess选项+索引)更改为755 将用户可以上传文件的所有目录改成755(例如:/uploads/)。解释:
644 表示: 6:文件/目录的所有者可以读取和写入,但不能执行。由于文件不可执行,因此您不需要在这里拥有“x”权限(6 表示 r+w。7 表示 r+w+x)。 44:文件/目录所属的组(使用ls -l
查看组)和其他所有人(公众)能够读取文件,但不执行或写入(权限编号 4)。
711 表示:
7:文件/目录的所有者可以读取、写入和执行。这是目录所必需的!当您尝试列出目录时,如果没有“执行”,您将获得权限被拒绝。
11:文件/目录所属的组和public只有执行权限。这适用于您不希望其他人浏览其内容但希望允许他们访问该目录下方的选定文件的目录。
755 表示:
7:文件/目录的所有者可以读取、写入和执行。李>
55:文件/目录所属的组和public拥有读取和执行权限但不写。这使用户能够查看目录中的文件,并能够读取这些文件,但不能更改它们。
还有一个交互式在线计算器,您可以使用它来确定使用哪些权限:https://chmod-calculator.com/
【讨论】:
【参考方案2】:它们应该尽可能地限制,但仅此而已。
通常0644
是一个不错的选择,它赋予所有者读写权限,但其他人只能读取。 0755
用于目录。但是,它可能取决于您的特定系统设置。
【讨论】:
Id 644 将适用于问题中提到的 PHP 页面,还是他们也需要设置可执行位?它可能取决于网络服务器及其配置方式吗? 不,除非您正在做一些非常疯狂的事情,否则您不需要为 PHP 页面设置可执行位。可执行位允许执行二进制文件,PHP源代码不是可执行二进制。【参考方案3】:如果您想重置所有内容,请执行此命令并理清后果。通常 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
【讨论】:
【参考方案4】:我认为644
是文件的标准,755
是目录的标准。
【讨论】:
是的,这对于非超级用户 shell 用户和他们自己的 /home 目录是正确的。【参考方案5】:如果您的网络服务器仅提供网页服务,不允许通过(例如)匿名 FTP 进行访问,则错误的文件权限不允许用户删除文件。
如果其他人可以通过其他方式(例如 SSH)访问您的服务器,请确保没有为您以外的用户设置写入位。执行:
find . -exec chmod go-w \;
此命令将限制执行它的所有文件和目录的权限。
【讨论】:
感谢您的回答,匿名 FTP 是不允许的,但我不确定人们是否可以在没有它的情况下进入并删除页面。【参考方案6】:无论您使用哪种方法,如果您的 Web 应用程序有可能依赖具有某些权限的文件或目录,请务必进行彻底的测试。虽然允许过于宽松的权限可能是不好的设计,但有时确实会发生这种情况,因此您可能会破坏应用程序。
【讨论】:
以上是关于什么是正常的chmod?的主要内容,如果未能解决你的问题,请参考以下文章
linux关于文件系统,Vim,yum,chmod的基础整理