有人可以像我五岁那样向我解释 chmod 权限吗? [关闭]

Posted

技术标签:

【中文标题】有人可以像我五岁那样向我解释 chmod 权限吗? [关闭]【英文标题】:Can somebody explain me chmod permissions like I'm five? [closed] 【发布时间】:2014-03-16 03:52:05 【问题描述】:

我不确定将我的文件权限设置为什么。

我理解这个概念,以及如何去做,但我不知道每个设置会产生什么样的后果。

选项是读取、写入、执行,我可以在三个不同的类别中检查每个选项:所有者、组、公共

我的文件夹的默认设置似乎是drwxr-xr-x755。我假设d 代表目录?

对于文件,标准通常是-rw-r--r--644

虽然我对确切了解权限编码的工作原理并不是很感兴趣,但我更想知道每个选项的作用,以及每个组是如何分开的。

谁是所有者,谁是组,谁是公开的? 读取、写入和执行到底赋予了它们每个人(所有者、组、公共)什么样的权限?

所以会有 9 个选项,我假设有 9 个用例。比如“如果您想让您网站的访问者能够将文件上传到此文件夹,请授予 publicwrite 的权限。”

我也意识到,不给read 权限public 在尝试访问文件时会导致403。

那么这 9 种不同的场景是什么?授予或删除文件和文件夹的特定权限的后果是什么?

【问题讨论】:

这个问题似乎是题外话,因为它属于Unix & Linux 你试过man chmod吗?***也有一篇[关于模式的好文章](en.wikipedia.org/wiki/Modes_(Unix)). 感谢 Amadan,这篇文章有些帮助...不过我正在寻找一个非常基本的解释...所有者到底是谁?组究竟是什么?在一个 php webapp 的考虑下,每个设置有什么后果? 【参考方案1】:

所有者是创建文件的用户,组是所有者的主要组,除非被chownchgrp 更改。文件所有者和组是您说ls -l 时可以看到的两个名称。在许多(但不是全部)系统上,每个用户的主要组都由用户命名;所以用户amadan 将属于一个组amadan,在他可能是也可能不是成员的任何其他次要组中。他创建的任何文件都会如下所示:

-rw-r--r--  3 amadan  amadan    102 Feb 14 18:34 test

Apache Web 服务器通常会以用户 www-data 的身份运行,同时拥有主组 www-data。如果你执行chgrp www-data testchmod 664 test,你会得到:

-rw-rw-r--  3 amadan  www-data  102 Feb 14 18:34 test

这将意味着以下内容:

用户amadan可以读写文件。 www-data 组(无论是主要组还是次要组之一)中的任何人,在这种情况下表示 Apache Web 服务器,也将能够读取和写入文件。 不属于amadan 且不属于www-data 组的任何人都只能读取该文件。

您可以通过groups amadan 找出您属于哪些组(当然,您可以使用您自己的用户名:p)。您可以通过检查 /etc/apache2/httpd.conf 或类似文件中的 UserGroup 指令或类似文件(因操作系统和 Apache 版本而异)来查看您的 Apache 运行的用户名和组。

【讨论】:

【参考方案2】:

基本上:

类别:

所有者: 文件的创建者(此外,当一个文件访问同一域内的另一个文件时,该文件被视为该文件的所有者)时间> 组: 您定义的文件组中的人员。关于如何定义组,可以访问这个问题:https://superuser.com/questions/341740/how-to-specify-group-with-chmod 所有人: 访问您网站的人

特权:

阅读: 能够查看文件 写入: 能够更改文件 执行: 能够删除文件

【讨论】:

如何定义组? php 脚本属于哪一类?例如,我可以对文件设置权限,以便我的 php 脚本可以读取内容,但我网站的访问者无权访问它吗? 更新后的答案应该可以回答所有这些问题。

以上是关于有人可以像我五岁那样向我解释 chmod 权限吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 windows api 解释 RPC 身份验证

CHMOD 755 与 750 权限集之间的差异

使用机器对机器和基于用户的身份验证使用 JWT 进行嵌套身份验证和授权是一回事吗?

有人可以向我解释一下:'create(email: emailArg = ) '吗?

有人可以向我解释为啥 L(长)必须在那里吗? [复制]

有人可以向我解释 asp.net 路由语法吗?