了解Unix所有者和chmod 777



据我所知,Unix有三个所有权级别:所有者、组和其他人。所有者是创建文件的人,以后可以使用"chown"移动此所有权。然而,我将chmod 777与"其他人"或"团体"混淆了。

对文件执行上一个命令还将允许组/其他组中的用户拥有与所有者相同的权限。因此,

  1. 我的理解正确吗:一个文件可以有多个所有者
  2. 如果chmod 777可以帮助完成同样的任务,那么chown有什么用
  3. "chmod 777组"中的用户是否可以通过命令chmod u=r filename来限制实际所有者的访问权限
  1. 文件只能有"1个所有者",但如果你想有多个"所有者",这就是组的作用所在。如果alice和john是一个名为"hello"的组的一部分,并且组"hello"被指定为组所有者,那么alice和john就是文件的所有者(作为组的一员)。然而,在传统意义上,没有,只有一个所有者。我经常将root作为指定的所有者,然后根据需要合并组
  2. chmod用于更改实际文件的权限。当您执行chmod 777时,您允许RWX(读、写、执行)访问所有者、组和其他人。如果chmod没有像chown那样实际改变所有权,它将不会取得同样的成功。所以chmod是指定义谁可以对文件做什么,chown是指确定谁拥有文件
  3. 不,他们不能更改,因为他们不是文件的所有者,而是作为组的"成员"的所有者。命令实际上是chmod u-r(减号)删除访问权限,"+"(加号)添加

您不能混淆:访问权限和所有权。

如果某人拥有某个对象,则该对象有权对其执行任何操作,包括修改访问权限和所有权。请注意,一旦有人因所有权而辞职,他就无法独自收回所有权。所以,如果你拥有一所房子,你可以按照你想要的方式管理它,让人们进入或不进入。

访问权限定义了谁可以独立于所有权对文件执行操作。我想你经常不要求所有权就进入一栋楼,这也是一样的。

访问权限只是定义某人(或一组或一组用户)是否有权阅读内容、修改内容或执行内容(至少基本上是这样)。但是,所有权、访问权等属性并不是文件内容的一部分,它们是与之相关联的元数据,修改这些元数据的方式非常特殊。例如,所有权和访问权只能由所有者修改。

现在:

一个文件可以有多个所有者?

可以,但不具备所述的基本访问权限和所有权。在基本Unix中,只能有一个所有者。

如果chmod 777可以帮助完成同样的任务,那么chown有什么用?

chown是所有权转让(您出售房屋)。chmod只是一种修改人们进入房子的政策的方式。

"chmod 777组"中的用户是否可以限制实际通过命令chmod u=r filename的所有者?

不知道"chmod 777 group"是什么。但除了所有者(root是一个非常特殊的用户)之外,没有人可以更改任何此类元数据(所有权、访问权)。

假设您的系统上有3个用户:krishnendu、mindy和wodin

krishnendu分为以下几组:krishnendo、员工、客人

mindy分为以下几组:mindy,员工

沃丁分为以下几组:沃丁,客人

krishnendu组的唯一成员是krishnendo用户。mindy和wodin组是相似的。

如果您有一个由krishnendu拥有的文件(file1),并使用模式640对krishnendo进行分组,那么只有krishnendu用户对该文件具有读/写访问权限。

如果您在不更改模式的情况下chown文件:chown mindy file1,那么它仍然具有krishnendu和模式640的组所有权。这意味着mindy将具有读/写访问权限,但krishnendu用户(因为krishnendo是krishnendugroup的成员)也将具有只读访问权限。

如果在那之后chmod 777 file1,那么它仍然由mindy所有,拥有krishnendu的组所有权,但现在所有三个用户都可以对该文件进行读/写/执行访问。

一个文件只能有一个所有者。如果要在拒绝系统上的其他用户访问的同时授予用户的子集访问权限,则需要将该用户子集放在一个组中,并使用chownchgrp更改文件组所有者。

例如,如果您使用模式640创建文件file2和file3,然后执行以下操作:

# chown root:staff file2
# chown root:guests file3

那么只有krishnendu和mindy可以访问file2,因为他们在staff组中,而wodin不在。只有krishnendu和wodin可以访问file3,因为他们在guests组中,但mindy不在。

因此,将文件模式设置为777与更改文件所有者不同。

此外,您通常不想使用777模式进行任何操作。

如果文件具有模式777,则除了root或所有者之外,它不赋予任何用户改变所有权或模式的能力。

最新更新