Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security UNIX访问控制如何产生折衷问题?_Security_Unix_Inode - Fatal编程技术网

Security UNIX访问控制如何产生折衷问题?

Security UNIX访问控制如何产生折衷问题?,security,unix,inode,Security,Unix,Inode,我的系统管理员建议我在设置文件和目录的访问控制时要小心。他给了我一个例子,我感到困惑,这是: 包含在保护模式为730的目录中的保护模式为644(八进制)的文件。 这意味着: 文件:110100100(所有者、组、其他:rw-r--r--) 目录:111011000(所有者、组、其他:rwx-wx--) 在这种情况下,文件如何被破坏?由于目录可以写入,如果攻击者在目录所有者组中,则文件可能被另一个文件覆盖。这取决于您所说的“破坏”的含义,也取决于该组的成员 目录权限至关重要。由于组成员可以访问

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

  • 文件:110100100(所有者、组、其他:rw-r--r--)
  • 目录:111011000(所有者、组、其他:rwx-wx--)

在这种情况下,文件如何被破坏?

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

这取决于您所说的“破坏”的含义,也取决于该组的成员

目录权限至关重要。由于组成员可以访问目录('x')并可以修改目录('w'),即使他们不能列出目录(no'r'),这意味着如果组成员知道文件名,此人也可以删除它,因为删除文件需要对目录的写入权限-文件权限无关紧要(即使“rm”等命令会让您知道您对文件没有写入权限,这是出于礼貌,因为这与“unlink()”系统调用无关)

因此,您的组成员(或者更准确地说,目录所属组的成员)如果知道该文件的名称,就可以删除该文件。如果知道文件名,他们还可以读取该文件,如果原始文件已经丢失,他们可以创建一个同名文件。从文件权限中可以看出,能够读取文件并不是一种妥协——如果这很重要,您将拒绝组读取访问(和公共读取访问)


请注意,尽管您的组成员无法修改该文件,因为他们可以删除该文件并创建具有相同名称的新文件,但结果与能够修改该文件基本相同。一个关键的区别是,您知道是哪个用户进行了破坏,因为该用户将拥有该文件。(嗯,有权访问该用户ID的人做了坏事。)

那么你是说拥有目录组访问权限的攻击者可以覆盖目录,并可以出于自己的目的更改文件。@Berkay:是的,这就是他的意思“更改”的意思是“删除当前文件并创建一个具有相同名称但(可能)不同权限的新文件-如中所示,所有者将不同”。感谢我得到了它,也无需覆盖,Jonathan提到,如果组中的成员知道该文件的名称,这个人也可以删除它,因为删除文件需要有写入目录的权限。这比我的解释要好得多,+1。完全相同的问题出现在《计算机安全:原理与实践》(第二版,Stallings&Brown),问题4.5(第157页)。