我可以依靠 701 权限来防止同一组内的用户互相干扰数据吗?

我可以依靠 701 权限来防止同一组内的用户互相干扰数据吗?

前段时间我了解到,将所有用户分配到同一个组并将他们的主目录设置为 701 可以防止他们互相干扰数据,但允许系统程序(例如 Web 服务器)访问数据。

因此,我创建了一个组,然后创建了users两个用户,分别有和主目录。然后,登录后我无法进入,反之亦然。alice:usersbob:users/opt/www/alice/opt/www/bobalice/opt/www/bob

因此,在我看来,权限检查并不总是针对每种类型(用户、组、所有人),而是逐渐进行,基本上在出现否定匹配后停止。也就是说,在我的情况下

  • 当同一组的用户尝试打开该目录时:
    • 首先,我们正在检查一个用户,它是不一样的,但7让我们进一步
    • 然后0阻止我们访问目录并停止进一步的权限检查
    • 所以我们不会陷入每个人的情况1
  • 而对于来自不同组的用户:
    • 首先,我们正在检查一个用户,它是不一样的,但7让我们进一步
    • 然后我们检查一个组,它是,0但是该组不同,所以它让我们通过
    • 1由于我们是这个目录的“所有人”,所以我们可以打开这个目录

这个猜想正确吗?我可以依赖这种行为吗?这种设置可能存在哪些缺点?

答案1

我认为你有点错了,但结果是一样的。701意思是:

  • 标记为所有者的用户获得完全权限,7
  • 组中标记为组所有者的用户没有权限,0
  • 每个人都获得执行权限,1

因此,如果所有者和权限分别/opt/www/bobbob:users701,则bob获得完全权限,每个人都可以“执行”该目录。这意味着任何人都可以访问文件夹中自己的文件或群组拥有的文件,但无法列出内容。

例子:

$> mkdir test
$> echo 'foo' > test/foo.txt
$> chmod 100 test/
$> ls -l test/
Permission denied
$> cat test/foo.txt
foo
$>

所以是的,组中的其他用户没有权限,但每个人都有执行权限。740如果您想允许组读取而不允许其他人读取,最好将权限设置为。或者741实现您所拥有的,但更清楚一点?

相关内容