经过大量阅读,我仍然不明白如何使用chmod。我的主要问题是这些数字是什么意思?我是Unix的新手,正在对我们的web服务器进行一些紧急修复,并被要求修复一些文件的权限。我不明白我需要做些什么才能访问这些文件。
有人能在这里提供一些帮助吗?
编辑:谢谢大家的精彩回答。不幸的是,我当时很恐慌,没有及时阅读,我们最终失去了客户。。很难选择任何一个答案,但我选择了我最理解的答案。
您有三种权限类型:
- 用户(应用于文件所有者的权限)
- 组(应用于文件组的权限)
- 其他(适用于其他所有人的权限)
对于这些类型中的每一种,您都可以允许3件事:
- 读取能力(请注意,您需要对目录拥有读取权限才能列出它)
- 写作能力
- 执行能力
如果你说:
chmod 755 some_file
它被分解成这样:
User Group Other
7 5 5 (octal value, base-8)
111 101 101 (binary value, base-2 or binary)
RWX RWX RWX
where: R - Read, W - Write, X - eXecute
因此,该命令意味着所有者可以获得所有权限,但组成员和其他人只能读取和执行。
chmod还有另一种输入格式,它很方便,不需要在头脑中转换为二进制。例如,为用户添加执行权限:
chmod u+x some_file
要删除这些权限,您可以说
chmod u-x some_file
您可以将"u"替换为"u"、"g"或"o"(分别为user、group或other),将"x"替换为'r'、'w'或'x'(您已经明白了)。
你必须小心。如果你这样做了:
chmod -R 777 some_directory
如果该文件包含敏感的配置数据,那么您只需授予"其他"(即外部世界)完全读取权限(意味着web服务器可能会提供这些信息)。
您也可以看看chown
命令。
查看这个在线玩具或谷歌获取大量教程。数字以八进制格式提供所有者的权限、组的权限和其他用户的权限。
如果你不懂数字,就不要使用它们:
chmod u=rw,go=r file
这将为用户设置对文件的读写权限,为组和其他人设置只读权限。您可以使用+
添加权限:
chmod ug+x file
(所以现在用户和组可以执行该文件),并且您可以使用-
来删除权限:
chmod g-x file
(所以现在该组的成员无法执行该文件)。
如果你想使用这些数字,有两组事实你需要知道:
- 数字为八进制(数字0..7),第一位(三位)表示用户的权限,第二位表示组的权限,而第三位也是最后一位表示其他用户的权限
八进制数字使用三个位,每个位的值为:
- 4-读取
- 2-写入
- 1--执行
因此,使用以下权限:
chmod 640 file
可以分为用于用户的6
、用于组的4和用于其他人的0。6
是4 + 2
(或4|2
),表示所有者的"读取"one_answers"写入"权限;组的CCD_ 8意味着组成员可以读取该文件;而对于其他人CCD_ 9意味着其他人不能访问该文件。
在目录的上下文中,"执行"更好地称为"访问",这意味着如果文件权限允许,并且用户知道名称,则有权访问该目录的人可以使用该目录中的文件。有了对目录的读取权限,您可以看到该目录中的文件列表;有了对目录的写入权限,您可以创建新文件或删除现有文件。
请注意,如果执行删除操作的用户对目录具有写入权限,则可以删除只读文件。像rm
这样的命令提供保护是出于礼貌,而不是依赖内核来保护命令的用户。
我还没有谈到权限的另外3个部分,它们出现在用户权限之前。当基本权限造成混乱时,您不需要担心这些问题,但SUID或设置UID位(4)、SGID或设置GID位(2)和粘性位(1)对于高级权限控制可能很有用。
其他人对如何解码权限的八进制表示提供了很好的解释。这只是涵盖了如何解决潜在问题
您遇到的问题很可能是某些文件无法被访问您网站的人读取。如果你的网站组织合理,所有可公开访问的文件都在一个目录中,该目录中没有任何非公开文件。如果是这种情况,您可以使用以下命令更改当前目录中及其下的所有文件,使其可读:
find . -type f -exec chmod oug+r {} ;
拥有目录上"其他"(o+r)的读取权限将允许某人将您网站上目录的内容作为目录进行读取。您需要确定这是否是您希望的情况,和/或这样做是否符合组织的政策。通常,如果文件具有适当的读取权限集,则有人可以读取特定名称的文件,而无需读取目录。要设置目录的读取权限,它是:
find . -type d -exec chmod oug+r {} ;
然而,您也可能希望所有这样的目录不被所有人读取,只被用户和组读取。在这种情况下:
find . -type d -exec chmod ug+r o-r {} ;
其他人提供了大量关于权限的解释。如果你很着急,只想弄清楚使用chmod命令的权限,我会查看众多在线计算器中的一个,这样你就不必在老板对你指手画脚时浪费时间。
- http://permissions-calculator.org/
- http://mintools.neocities.org/#/unix-权限计算器
- http://mistupid.com/internet/chmod.htm
不过,我还是建议你在。。。