我正在尝试了解 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
。有两种方法可以实现这一点。
rwx
1)为所有5个用户分别设置文件的权限xyz
。
2) 创建一个组ugroup
(例如)。将其文件权限设置xyz
为rwx
并将所有 5 个用户添加到 ugroup
。
属于该组的所有用户ugroup
对该文件具有相同的权限集,即rwx
。
正确设置组可确保重用同一组权限,从而防止您重复操作。