我正在尝试了解文件权限系统如何工作。我有一个组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鲍勃将无法访问它。