我在网上搜索了一段时间,希望找到一个关于 CHMOD 的很好的解释,但还没有找到一个好的解释,因为每个解释都使用相同的词语,只是有细微的差别。
我目前所知道的情况: 有一个 CHMOD 编号,它对应 3 个访问级别:所有者、组和其他人。您可以设置读取、写入和执行。777 表示所有用户都可以执行所有操作,而 000 表示任何人都不能执行任何操作。
我需要帮助理解 “所有者、群组和其他所有人”是谁?典型的解释是,所有者是“我”,但我没有读取、写入或执行权限?我以匿名用户身份登录我的网站进行测试。谁是群组用户?他们通常解释为群组中的用户 :P,这是否意味着我的共享主机帐户上的帐户?其他人是谁?
这个概念并不难理解,但我读过的解释都缺乏透彻的解释。据我所知,访问我网站的用户有两种。一种是访问脚本/文件的服务器,另一种是要求服务器访问这些脚本/文件的随机用户。
最后但并非最不重要的一点是 3 个访问器。据我所知,如果文件的“读取”被禁用,则不会显示该文件;如果“写入”被禁用,则脚本无法对其进行修改;如果执行被禁用,那么我就不太确定了。
我将非常感激您对这些问题的详尽解释和回答。对于大多数经验丰富的服务器管理员来说,这似乎是一个简单的想法,但我目前正在自学使用 Network Solution 进行共享主机的服务器管理,因此我有点缺乏经验。
答案1
你的注意力中心错了。忘掉网络和网页吧。
Chmod 更改权限文件,而不是在网页上。
如果要显示网页,您将需要文件,但此时您看到的是极端情况。从基本部分开始。
如果您使用 Windows 计算机并以“joe”的身份登录。那么您的文件将位于 c:\users\joe 中。只有您(以 joe 身份登录时)可以读取这些文件。如果您创建第二个帐户(例如 jane,joe 的妻子),那么她的文件将位于 c:\users\jane 中。
Joe 可以读取来自 Joe 的文件,但不能读取来自 Jane 的文件。 Joe 可以读取来自 Jane 的文件,但不能读取来自 Joe 的文件。
在 unix 中情况类似。
您的文件不会位于 c:/user/* 中,而是位于 /home 中。
如果您有网页,那么您将拥有该网页的文件。您需要设置谁可以读取该文件、谁可以写入该文件以及谁可以执行该文件(假设它是可执行文件)。
在 unis 中执行此操作的经典方式是由文件所有者(例如 Jane 或 Joe)、群组(例如所有用户)和世界其他人执行。
一旦你理解了这一点,你就可以扩展到网页。根据 http 的情况,事情甚至可能有点不标准。但从基础部分开始。暂时忽略网络内容。
编辑:作为我的目录的一部分的示例。这与您的文件管理器应该向您显示的内容大致相同。
蟾蜍:/home/hennes/.html>ls -l 总计 18364 -rw-r--r-- 1 hennes 用户 1320216 2012 年 1 月 27 日 20050326_Australia_Uluru_from_plane.jpg -rw-r--r-- 1 hennes 用户 2012406 2010 年 12 月 16 日 20101216_Kerstboom2010.JPG lrwxrwxrwx 1 hennes 用户 9 2006 年 4 月 30 日 图片 -> 图片/ -rw-r--r-- 1 hennes 用户 240548 5月 3 20:54 Western_realm.png -rw-r--r-- 1 hennes 用户 1654 2004 年 4 月 24 日 about_me.html -rw-r--r-- 1 hennes 用户 1899 2007 年 8 月 7 日 appeltaart -rw-r--r-- 1 hennes 用户 4090644 2011 年 12 月 1 日 book_list.txt -rw------- 1 hennes 用户 385 2005 年 8 月 11 日 booklist.html -rw-r--r-- 1 hennes 用户 4384 2005 年 5 月 15 日 bookmarks.html -rw------- 1 hennes 用户 1999 年 2 月 28 日 2011 年 bug.txt
第一部分是权限。分为三组。
然后是链接计数(我将忽略它,因为它对 chmod 来说并不重要)
然后是用户。在你的情况下,它将是“abc”
用户后面是文件所属的组。在这台计算机上,所有可以登录的人都会添加到此组。
然后是文件大小
文件修改日期
最后是文件名
作为文件的所有者,您希望能够读取和写入自己的文件。因此,通常第一列包含 rw- 或 rwx。如果没有“r”,则无法读取自己的文件。如果没有“w”,则无法写入文件(因此无法更改文件)。
显示的组“用户”有点通用。但您可以在其上设置相同的标志。组的优点是您可以将多个人添加到其中。例如,您可以拥有一个具有这些设置的文件
- rw- rw- --- 1 Joe SalesWeb 2048 Feb 30 2012 index.html
用户“joe”创建了该文件。他是它的所有者。他可以读取和写入它。
已添加到组“SalesWeb”的所有其他人也可以读取和写入它。(这允许您与文件上的组一起工作)。
其他人不允许对该文件执行任何操作。
答案2
谁是“所有者、群组和其他所有人”。
突出的计算机系统概念是,一个人必须确认自己的身份才能使用 Linux 等安全系统。这是登录程序涉及用户名或者用户身份以及密码或生物特征比较(例如指纹或虹膜扫描)等安全机制。
在任何之前登录可以尝试,一些系统管理必定会发生。
- 这用户名(或者用户身份)必须输入到有效列表中用户。
- 这用户名(或者用户身份)也将进入任意数量的团体列表。也就是说,每个团体名单是所有用户是该组织的成员团体
谁是群组用户?
这两个问题毫无意义,因为“群体”不是“谁”。团体是以下列表用户。 那些用户属于那团体. 给定一个特定的用户以及特定的团体, 那用户要么属于该组,要么不属于该组团体。
有 CHMOD 编号,对应 3 个访问级别
除了这三个访问级别之外,该文件还有另外两个显著的属性:
- 这用户名拥有(控制)此文件的人。
- 这团队名字拥有(控制)此文件的人。
有三种访问级别,但只应用一种读/写/执行访问级别。 三个 rwx 权限中的哪一个可以通过一个简单的测试来确定:
- 如果用户尝试访问此文件的用户所有者,则所有者需要使用 rwx 权限。
- 否则,如果用户尝试访问此文件的人是该文件的组所有者的成员,那么团体需要使用 rwx 权限。
- 否则其他需要使用 rwx 权限。
一旦建立了 rwx 权限,就会将访问类型与所选权限进行比较:
- 仅当“x”权限位被设置(启用)时,才允许执行访问操作(即从文件传输到内存并标记为可执行)。如果文件实际上是一个目录,也用于搜索权限。
- 仅当设置(启用)“w”权限位时,才允许执行写入访问操作(即从内存传输到文件)。
- 仅当设置(启用)“r”权限位时,才允许执行读取访问操作(即,其他所有内容:从文件传输到内存并标记为不可执行)。
我以匿名用户身份进入我的网站进行测试。
正如开头所述,主要概念是,一个人必须通过登录系统来识别自己。这涉及通过本地控制台或终端或远程终端的登录过程,以建立用户名无需登录即可访问计算机系统,通常需要非常受限的访问或通过服务,例如可以将网页传送到浏览器的 Web 服务器。这服务通常作为守护进程执行,并由特定用户并属于特定群组. (请注意用户“拥有”服务的人通常是一个抽象的实体,而不是一个真实的人。通常有安全措施来防止以服务的用户名。)由于内核启动守护进程,服务无需“登录”。但此服务可以像任何真实的一样控制用户以传统方式登录的人。
顺便说一下,网页是输出(数据)从 Web 服务器(程序)传输到您的 Web 浏览器(程序)。组成这些网页的数据可以来自单个 .html 文件或动态生成,例如由 .CGI 程序生成。如果 Web 服务器在尝试完成来自浏览器的请求时遇到文件权限错误,您可能会收到“错误 403”HTTP 状态代码。
附录 如果您想讨论或评估文件权限问题,您需要询问并获得一些问题的答案:
执行访问的进程的 usename 是什么?如果您从命令行执行程序,则使用
$ whoami
谁拥有正在访问的文件?您需要获取用户和组所有者。您用于获取文件权限的方法还应该能够报告所有权。永远不要以为仅仅因为您拥有一个目录,您就拥有该目录中的所有文件。提取保留权限和所有者的存档可能会让您感到惊讶。
- 文件权限是什么?您似乎已经知道如何获取它。但您似乎只关注这部分信息,而忽略或忽略了上述两项。
也许用户名和文件所有权概念是您理解中的漏洞。