代码之家  ›  专栏  ›  技术社区  ›  Krishnendu

了解Unix所有者和chmod 777

  •  1
  • Krishnendu  · 技术社区  · 8 年前

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

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

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

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

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

    访问权限定义谁可以在文件上做什么,与所有权无关。我想你经常不要求所有权就进入一栋建筑,这也是一样的。

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

    现在:

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

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

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

    chown 是所有权转让(你卖掉你的房子)。 chmod

    “chmod 777组”中的用户是否可以限制实际 由命令chmod u=r filename指定的所有者?

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

        3
  •  1
  •   Wodin    8 年前

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

    wodin分为以下几组:wodin,guests

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

    如果您拥有krishnendu拥有的文件(file1),并且将krishnendu分组为模式640,则只有krishnendu用户具有对该文件的读/写访问权限。

    如果在不更改模式的情况下浏览文件: chown mindy file1 然后,它仍将拥有krishnendu和mode 640的集团所有权。这意味着mindy将具有读/写权限,但krishnendu用户(因为krishnendu是krishnendu组的成员)也将具有只读权限。

    如果你 chmod 777 file1

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

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

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

    那么只有krishnendu和mindy可以访问file2,因为他们在 staff 但沃丁不是。只有krishnendu和wodin可以访问文件3,因为他们在 guests 但明迪不是。

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

    此外,您通常不想在任何情况下使用模式777。

    如果文件具有模式777,则除了root用户或所有者之外,其他任何用户都无法更改所有权或模式。

    推荐文章