读了很多书之后,我仍然不知道如何使用chmod。我的主要问题是,这些数字意味着什么?我是Unix的新手,在我们的web服务器上做一些紧急修复,并被要求修复某些文件的权限。我不明白我需要做些什么才能让文件可以访问。
有人能在这里提供帮助吗?
编辑:谢谢大家的回答。不幸的是,我当时惊慌失措,没有及时阅读,结果我们失去了我们的客户。很难选择任何单一的答案,但我选择了我最理解的答案。
发布于 2014-09-22 02:55:36
您有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”(分别为用户、组或其他),并将“x”替换为“r”、“w”或“x”(您知道了)。
你得小心点。如果你这样做了:
chmod -R 777 some_directory该文件包含敏感的配置数据,然后您只授予“other”(即外部世界)完全的读取权限(这意味着web服务器可能会提供这些信息)。
对于您来说,查看chown命令也是值得的。
发布于 2014-09-22 02:49:24
查看这个在线玩具或谷歌的许多教程。数字以八进制格式给出所有者的权限、组的权限和其他人的权限。
发布于 2014-09-22 02:52:53
如果你不理解这些数字,就不要使用它们:
chmod u=rw,go=r file这将设置文件的权限,以便为用户读取和写入文件,为组和其他人设置只读权限。可以使用+添加权限:
chmod ug+x file(因此,现在用户和组可以执行文件),您可以使用-删除权限:
chmod g-x file(因此,现在组的成员无法执行文件)。
如果您想使用这些数字,需要了解两组事实:
- 4 — read
- 2 — write
- 1 — execute
因此,使用权限如下:
chmod 640 file可以将用户分为6、组4和其他组0。6 (即4 + 2 (或4|2) )意味着所有者的“读”和“写”权限;组的4意味着组成员可以读取文件;而对于其他成员,0表示其他人不能访问该文件。
在目录的上下文中,“execute”更好地称为“access”,这意味着如果文件权限允许,并且用户知道目录的名称,可以使用目录中的文件。通过对目录的读取权限,您可以看到目录中的文件列表;通过对目录的写权限,您可以创建新文件或删除现有文件。
注意,如果执行删除操作的用户对目录具有写权限,则可以删除只读文件。像rm这样的命令提供保护是出于礼貌,而不是依靠内核来保护命令的用户。
我还没有讨论权限的3位,这些权限出现在用户权限之前。在基本权限导致您混淆时,您不需要担心这些问题,但是SUID或set UID位(4)、SGID或set GID位(2)和粘滞位(1)对于高级权限控制非常有用。
https://stackoverflow.com/questions/25965900
复制相似问题