Unix文件特权系统与Windows有什么不同?


9

相关问题:Linux文件系统/组织与Windows有何不同?

我对特权在文件和目录方面的工作方式有些熟悉-每个条目都有一个ownerand group属性,分别代表文件的所有者和所有者所属的组(如果我错了,请更正我)。

这与Windows NTFS文件系统中的权限组织有何不同?Unix的权限系统相对于NTFS有什么优势?

Answers:


16

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。


4
这是对目录的setgid权限,它使文件继承所有者组,而不是权限。
Random832

3
@乔治:您需要记住的一件事是,该组不是所有者的组,它是独立的。参见chgrp(1)。
Hello71 2011年

@ Random832:感谢您的澄清。
LawrenceC

3
如今,大多数发行版都支持默认情况下扩展为各种可用文件系统的扩展访问控制列表(ACL)。需要访问软件包的名称和修改这些通常被称为aclfacl或类似的东西,有一个名为两个方案setfacl,并getfacl修改或检索访问控制列表的设置。
沙杜尔

7

完全不同的一件事是,“可执行文件”是Linux / Unix下的许可,而不是基于文件的名称或扩展名。

与Windows相比,这是一个优势,因为在Linux上,您可以通过删除可执行权限来确保某些操作不会执行。根本没有魔术扩展很重要。这可能是为什么传统文件病毒在Unix和Linux上无所作为的原因之一。


2
Windows实际上确实具有可执行权限,尽管它们通过默认设置来达到目的。
补丁

1
扩展在Windows上也无关紧要。
洛根·卡帕尔多

1
@Logan:实际上,它们在Windows上确实很重要。文件扩展名决定了可以使用什么程序打开它,以及指示浏览器文件是什么类型,以便可以生成缩略图。在后一种情况下,这可能会利用缩略图生成器中存在的错误,从而可能危及系统。
内森·奥斯曼

1
@George这同样适用于在任何操作系统上均具有错误的缩略图预览器的图形文件管理器。我的观点是,如果您的程序以.exe结尾(如果通过cmd.exe运行程序很容易看到),CreateProcess不会给出两个提示,但是它确实关心执行位。
Logan Capaldo

2
@George,就像Unix一样(除非您想开始争论寻找shebang是否“高级”)。我只是想弄清楚文件扩展名与安全模型无关。如果在Windows上将可执行文件标记为不可执行,则其效果与在UNIX上相同。
Logan Capaldo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.