相关问题:Linux文件系统/组织与Windows有何不同?
我对特权在文件和目录方面的工作方式有些熟悉-每个条目都有一个owner
and group
属性,分别代表文件的所有者和所有者所属的组(如果我错了,请更正我)。
这与Windows NTFS文件系统中的权限组织有何不同?Unix的权限系统相对于NTFS有什么优势?
相关问题:Linux文件系统/组织与Windows有何不同?
我对特权在文件和目录方面的工作方式有些熟悉-每个条目都有一个owner
and group
属性,分别代表文件的所有者和所有者所属的组(如果我错了,请更正我)。
这与Windows NTFS文件系统中的权限组织有何不同?Unix的权限系统相对于NTFS有什么优势?
Answers:
NTFS具有Windows ACE。Unix在每个文件上使用“模式位”。
在NTFS上,每个文件可以具有一个所有者,以及零个或多个Windows访问控制项(ACE)。ACE由主体(用户和组是主体),一组操作(读,写,执行等)以及是否允许或拒绝这些操作组成。文件可以具有许多ACE。Windows中除文件以外的其他对象也可以具有ACE,例如注册表项,打印机对象和其他内容。发生文件操作时,将考虑所有ACE。拒绝优先于允许。
Windows ACE支持继承,您可以在其中为目录设置ACE,并将其自动传播到较低级别的目录。
Unix中的文件具有一个拥有用户(所有者)和一个拥有组(owner-group)。有三个固定的“主体”,它们是所有者,所属组的成员和其他所有人(又名世界)。对于每个主体,都有三个“位”,分别涵盖读取,写入和执行能力。(这些目录与文件的含义不同,请参见this)。这些位确定谁可以执行哪些操作。这称为文件模式,并内置于文件中(没有单独的ACE)。
在大多数情况下,您担心“世界”权限,即将“世界”的所有三个位都设置为0意味着不是所有者或组所有者的任何人都不能对文件进行任何操作。Unix权限仅在文件系统上起作用,但是由于大多数对象都以文件形式出现,因此您可以使用权限来限制对磁盘,打印机等的访问。Unix权限更简单,但更“粗糙”。Unix权限不支持继承,并且不会影响较低级别的目录,但对目录的执行权限(我认为)除外,它会导致新创建的文件承担目录的权限(但不影响当前创建的文件)。
传统上,Unix文件具有一个所有者和一个所有者组。Linux的一些扩展以类似于Windows的方式将ACE添加到文件中。
Unix的优势仅在于,一个更简单的系统通常更易于理解和保护,并且速度更快,因为在打开文件时文件系统除索引节点外不需要获取ACE。
acl
或facl
或类似的东西,有一个名为两个方案setfacl
,并getfacl
修改或检索访问控制列表的设置。
完全不同的一件事是,“可执行文件”是Linux / Unix下的许可,而不是基于文件的名称或扩展名。
与Windows相比,这是一个优势,因为在Linux上,您可以通过删除可执行权限来确保某些操作不会执行。根本没有魔术扩展很重要。这可能是为什么传统文件病毒在Unix和Linux上无所作为的原因之一。