文件/目录是否属于用户和组?

文件/目录是否属于用户和组?

我正在尝试了解 Ubuntu 中的文件权限如何工作。但是,我无法理解用户和组权限之间的区别。

这里它说:

所有者权限- 所有者的权限决定文件所有者可以对文件执行哪些操作。

但它也说:

组权限- 组的权限决定了用户(作为其成员)可以执行哪些操作文件所属的组,即可对文件执行。

那么文件是属于用户还是组?如果第二列显示组权限,那么这些权限与用户权限有何不同?

答案1

如上所述,权限分为 3 个部分,举个例子,可能更容易理解,下面是它的分解方式

假设 root 是文件的所有者/用户,假设 video 是组,然后如上所述,还有 world/other 部分,它涵盖了前两个部分之外的任何人。

现在如果文件具有如下权限

Read/Write for root

Read for the group video with user1 as a member of that group

and none for world/other

然后,root 用户将对文件拥有完全的读写控制权。视频组 (user1) 中的任何用户都将拥有读取权限,但无权修改该文件。其他任何人甚至都无法查看该文件的内容。

如上所述,sudo chmod 可用于更改文件的权限。 chmod 的用法太多,无法在此解释,但简单的细分如下:

u is for user,
g is for group,
and o is for others.

r is for read permission,
w is for write permission,
x is for execute permission.

因此,如果您想设置一个文件,以便文件的用户/所有者可以拥有完全访问权限,并且您希望该组可以读取并能够执行该文件(例如脚本),而您希望其他所有人只能执行该文件,则命令为:

sudo chmod u+rwx, g+rx, o+x /path/filename

要删除权限,只需使用减号而不是加号……因此,如果你决定不想让“world/other”能够执行该文件,你只需使用

sudo chmod o-x /path/filename

您还会看到有时使用的数字,我实际上必须查找这些数字,但基本上我知道 7 是完全权限,所以如果您这样做:

sudo chmod 777 /path/filename 

它将为用户(前七个)、组(第二个七个)和世界/其他(第三个七个)设置读写执行的权限。

还有一个递归代码(-R,注意大小写,必须是大写)..如果您想更改一个目录及其子目录中的所有文件(使用此命令时要小心,因为如果您输入了错误的路径,您可以设置您可能不想触碰的文件的权限)但它看起来像这样:

sudo chmod -R 777 /home/user/blah  

这将更改文件夹 blah、所有文件以及其所有子目录和文件的权限,使任何人都可以完全读取/写入/执行。

希望这能让你更好地理解 chmod 和权限。如果你需要更多信息,你可以搜索 chmod 命令,你应该能找到你需要的信息

答案2

我认为没有人真正回答过您的具体问题。(也许是非常模糊的评论,不确定。人们为什么这样做?)

文件属于用户和组。您可以使用“ls -l”命令查看这两者。

你问的关于组权限与用户权限不同的问题很好。你可能想到的是你拥有的文件,它也在你的组中。要了解这背后的全部故事,你需要查看“用户私有组”和 umask。

如果您尝试使用“chmod”,您将发现您可以对您拥有的和您组中的文件执行哪些操作。当我尝试它时,如果我作为用户具有写入权限,我就可以写入。如果只有我的私人组具有写入权限,我就无法写入。我是新手,所以我不知道为什么它会这样。

答案3

不仅有用户和组权限,还有文件的“其他”或“世界”权限。

回答您的第一个问题,是的,文件具有用户或组权限。

回答你的第二个问题,第二列确实显示了组权限,这些权限可以通过“chmod”命令进行更改。

答案4

设置组权限是为了使许多用户可以使用同一套权限。假设有一个文件xyz需要 5 个用户的权限rwx。有两种方法可以实现这一点。

rwx1)为所有5个用户分别设置文件的权限xyz

2) 创建一个组ugroup(例如)。将其文件权限设置xyzrwx并将所有 5 个用户添加到 ugroup

属于该组的所有用户ugroup对该文件具有相同的权限集,即rwx

正确设置组可确保重用同一组权限,从而防止您重复操作。

相关内容