![授予群组读取权限不起作用](https://linux22.com/image/889084/%E6%8E%88%E4%BA%88%E7%BE%A4%E7%BB%84%E8%AF%BB%E5%8F%96%E6%9D%83%E9%99%90%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试了解文件权限系统如何工作。我有一个组group common
。然后我创建了 2 个帐户;bob 和 alice useradd -m -G common bob/alice
。我为他们都创建了密码。然后我将用户切换为 alicesu alice
并创建了一个目录mkdir shared
。然后我更改此文件夹的所有权chgrp common shared
和权限chmod 740 shared
。现在,当我测试它时,我可以使用 alice 访问目录。但是,当我将用户切换为 bob 并尝试访问文件夹时,它显示bash: cd: shared/: Permission denied
。我做错了什么?组的成员都应该具有读取权限。
答案1
这是 UNIX 的一个怪癖。
要ls
在目录上执行操作,您需要具有该目录的执行权限。
如果你只有读取权限,你可以访问目录中的文件,但你必须先了解它们!例如
作为爱丽丝:
echo "Hello Bob" > shared/hello
正如鲍勃所说:
cat shared/hello
如果您希望 Bob 能够ls
(或cd
进入)公共目录:
chmod 750 shared
答案2
请注意以下有关 Linux 中的权限:
- (r) read 允许打开给定名称的文件
- (w) write 允许创建文件
- (x)执行允许列出或搜索文件。
因此,您需要授予该文件夹的权限750供其他用户访问,并且由于它是由 Alice 创建的,因此她r,w,x但由于现在的许可是740鲍勃将无法访问它。