授予群组读取权限不起作用

授予群组读取权限不起作用

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

相关内容