UNIX访问控制如何创建折衷问题?

时间:2010-03-14 21:10:52

标签: security unix inode

我的系统管理员建议我在设置文件和目录的访问控制时要小心。他给了我一个例子,我感到困惑,这里是: 保护模式为644(八进制)的文件包含在具有保护模式730的目录中。 所以这意味着:

  • 档案:110 100 100(所有者,团体,其他:rw- r-- r--)
  • 目录:111 011 000(所有者,团体,其他:rwx -wx ---)

在这种情况下如何妥协文件?

2 个答案:

答案 0 :(得分:8)

这取决于你对'妥协'的意思,这取决于谁属于该群体。

目录权限至关重要。由于该组的成员可以访问目录('x')并且可以修改目录('w'),即使他们无法列出目录(没有'r'),也意味着如果该组的成员知道该目录该文件的名称,该人也可以删除它,因为删除文件需要写入目录的权限 - 文件权限是无关紧要的(即使诸如'rm'之类的命令让你知道当你没有写入权限时文件,这是礼貌的,因为它与'unlink()'系统调用无关。)

因此,您的组的成员(或者更准确地说,该目录所属的组的成员)可以在知道其名称时删除该文件。如果文件知道其名称,他们也可以读取文件,如果原件已经丢失,他们可以创建同名文件。从文件权限看,能够读取文件并不妥协 - 如果重要,您将拒绝组读取访问(和公共读取访问)。

请注意,虽然您的组成员无法修改该文件,但由于他们可以删除该文件并创建一个具有相同名称的新文件,因此结果基本上与能够修改该文件的结果相同。一个关键的区别是你知道哪个用户做了恶作剧,因为该用户将拥有该文件。 (好吧,有权访问该用户ID的人会做恶作剧。)

答案 1 :(得分:1)

由于可以写入目录,如果攻击者位于目录所有者的组中,该文件可能只会被另一个文件覆盖。