我想授予具有用户名userA
权限的特定用户仅读取我创建的文件夹的权限。我发现的所有其他帖子都说你应该创建一个新组,但我不能这样做,因为我没有 root 权限。当我尝试创建一个组时,groupadd class1
它显示以下消息:
groupadd: Permission denied.
groupadd: cannot lock /etc/group; try again later
不同帖子建议的另一种解决方案是,我应该让用户成为该文件夹的所有者,但我不愿意这样做,因为我不希望他们将其他人添加到该文件夹中。
答案1
您可以使用 ACL(访问控制列表)来完成此操作。
setfacl -m u:userA:rx folder
如果您只想授予userA
访问权限folder
(用户将无法读取文件夹内的文件)或
setfacl -R -m u:userA:rX folder
如果您想授予folder
对其内所有(已存在的)文件和子文件夹的访问权限。
答案2
看起来你可能真的有两个问题。但也可能没有。
您的 /home 目录是非管理员可以可靠地存储文件的唯一位置,历史上默认设置为世界可读。每个人都可以读取您的所有文件……但 (几乎) 无法写入任何文件。
$ ls -lah /home/ total 16K drwxr-xr-x 4 root root 4.0K Dec 3 2016 . drwxr-xr-x 24 root root 4.0K Oct 16 2019 .. drwxr-xr-x 21 1001 1001 4.0K Aug 17 2017 susan drwxr-xr-x 45 me me 4.0K Oct 20 15:30 me
在此示例中,我可以读取(但不能写入)Susan 的所有文件,她也可以读取我的所有文件。我还可以启动她的任何应用程序和脚本。我可以复制她的文件,而我的副本(在我的目录中)将变为可由我(而不是她)写入。
如果您同意此设置,那么您的问题已经解决:您的特定用户已经具有只读访问权限。
如果你说服管理员锁定你的 /home 目录,这样就没有人可以再读取你的文件了,它将看起来像这样:
$ ls -lah /home/ total 16K drwxr-xr-x 4 root root 4.0K Dec 3 2016 . drwxr-xr-x 24 root root 4.0K Oct 16 2019 .. drwx--x--x 21 1001 1001 4.0K Aug 17 2017 susan drwx--x--x 45 me me 4.0K Oct 20 15:30 me
现在 Susan 无法再读取我的文件(我也无法读取她的文件),我必须使用一个组来授予其他任何人访问权限。
您完全正确,只有管理员可以创建群组,并且只有管理员可以编辑该群组的成员。
步骤1:您可以更改您自己的目录和文件的权限。
例子:
mkdir /home/me/public-view chmod 751 /home/me/public-view // 7 means you have complete control over the directory // 5 means 'read-only' for members of the group // 1 means nobody outside you or the group can access it // but it will still show up on directory listings
步骤 2:管理员创建一个新组,将特定人员添加到该组,并更改目录的所有权,以便该组(由一个人组成)可以访问它。由于您是所有者,因此您仍然对目录中的所有内容具有读/写访问权限(这就是为什么您确保在 chmod 的第一列中拥有权限“7”的原因)。