Leopard系统的文件及文件夹权限

Marble’s Mac

Mac OS X系统常见问题解答

Marble’s Mac header image 2


Leopard系统的文件及文件夹权限

November 26th, 2007 · 5 篇评论

使用过Mac OS 10.5以前的版本的用户,在使用Leopard时,很快就会发现一些与用户权限相关的用户界面变化。比如,使用Finder的”显示简介”(Get Info)功能显示文件或文件夹的简介时,其”共享与权限”(Share and Permission)部分,已经从以前的所有人(Owner)、组别(Group)和其它(Others)的访问权限(Permissions)的下拉菜单变为对用户和权限列表,同时允许添加用户。

�� 22.png

在系统设置偏好中的账户(Users)偏好,系统不仅自动添加了一个仅限共享的客人账户,还允许设置仅限共享及受”家长控制管理”的用户。另外,还允许设置”组”(group),以及组下的分组(nested groups)。

这些变化,毫无疑问,与用户对于文件或文件夹共享的权限有关。

文件及文件夹的权限涉及到两个方面的内容:1。所有者(Ownship); 2。权限。

对于Unix系统而言,Root用户具有全权,在苹果界面上,这个用户在Finder或”重置用户密码”(Reset Password)应用中被称为系统(System)。 Root所建立的文件,别人改不了。而Root却可以修改其它用户的文件及权限。因此,如果要修改其它用户所创立的文件或文件夹,可以在命令行,输入:sudo 来借用Root执行文件操作。

Mac OS X系统的基本设定是,文件或文件夹的所有人对该文件或文件夹具有全权; 所有人及管理员或系统(System)可以修改该文件或文件夹的权限。文件或文件夹移动以后,其所有人和权限保持不变。

Mac OS X图形界面上所提供的基本权限只有四种:”读与写”(Read and Write),”只读”(Read Only),”只写”(Write Only),以及”无权访问”(No Access)。另外,除了所有者以外,还涉及到组别和其它(Others)。在Mac OS 10.5以前的版本上,从图形界面上,文件或文件夹的权限只能为一个组进行设置。而剩下的人和组则只能服从对”其它”的权限设定。这种权限是标准POSIX权限。在终端下,使用 ls -l 命令,可以看到文件或文件夹的POSIX权限,与下面两行类似:

drwxr-xr-x 所有者 组名

-rw-r–r– 所有者 组名

上面第一行里的第一个字母d,代表它是文件夹。r代表可读,w代表可写,x代表可执行,-表示无。从左起第2位到第4位表示的是所有者的权限,第5位到第7位,则是组的权限,最后三位是其它人的权限。因此,该行表示的是该文件夹的所有人可以对其读写和执行,而其它人则不可写入或修改该文件夹。

第二行则表示的是一个文件。所有人对该文件可读写,其它人则只可读。

POSIX权限很简单,但是不够灵活。比如,如果你想让两个在不同组的人看到这个文件,并让其中一个可对该文件进行修改,而另一个只是可读,其它人则无权访问该文件,POSIX权限将无法处理这个情况。为了弥补POSIX的灵活性不足,苹果在Leopard上采用了所谓的”访问权限控制列表”(Access Control Lists,也叫做ACL),但是从用户界面来看,并没有完全把ACL交给用户来管理,而只是利用了ACL允许多个用户或用户组在享有同一个文件或文件夹时可以有不同的权限这一特点。

ACL规定了以下13种权限:
1.更改权限 (管理型) - 用户可以更改标准权限
2.更改所有权 (管理型) - 用户可以将文件或文件夹的所有权变为自己
3.阅读属性 (可读型) - 用户可以看到文件或文件夹的属性,比如名称、建立日期、文件大小
4.读取扩展属性 (可读型) - 用户可以看到第三方软件开发人员添加的文件或文件夹属性
5.文件夹内容列表 (可读型) - 用户可以列出文件夹内容,并阅读文件
6.文件夹内部操作 (可读型) - 用户可以打开下级文件夹并运行软件
7.阅读权限 (可读型) - 用户可以通过”显示简介”或使用终端命令查看文件或文件夹的标准权限
8.写入属性 (可写型) - 用户可以改变文件或文件夹的标准属性
9.写入扩展属性 (可写型) - 用户可以改变文件或文件夹的其他属性
10.建立文件 (可写型) - 用户可以建立新文件并更改文件
11.建立文件夹 (可写型) - 用户可以建立下级文件夹或给文件添加数据
12.删除 (可写型) - 用户可以删除文件或文件夹
13.删除内部文件夹或文件 (可写型) - 用户可以删除下级文件夹和文件

除此之外,这些ACL权限还受到”允许”(Allow)与”拒绝”(Deny),以及是否将权限传承到子目录或子文件中的制约。总之,ACL的权限规定相当细致,对文件或文件夹的权限可以设置得非常灵活。但是灵活性的增加,自然就会让系统更加复杂,即使是有经验的管理员都可能出现问题,就不要说一般用户了。苹果在Mac OS 10.4 服务器版本就已经执行了ACL。而在非服务器版本中,虽然在图形界面上用户没有办法执行这些细致的权限,但是在终端下使用chmod命令,这些权限是可以执行的。

在Leopard上,从Finder的显示简介的界面上,如果加入一个用户,并赋予他可读的权力,在终端中显示的情况会与下图红色背景中的内容相似:

�� 23.png

上图显示的是一个叫做”test”的文件夹,所有者是marbles2,用户组staff及其它用户可以读和执行其内容。而第2行,则显示的用户marbles被允许显示文件列表、搜索、阅读属性、阅读扩展属性及阅读权限。这说明,Leopard用户图形界面虽然不允许用户单独使用每个单独的ACL权限来进行设置,但是将ACL按可读与可写的权力来区分并执行。另外通过允许用户自己建立用户组,使ACL的使用有了一定的灵活性。

在文件权限的执行上,ACL占有优先权,然后才是POSIX权限。另外,如果文件夹没有将自身的权限传承到目录里的内容,或者,虽然在某一个时刻,用户把文件夹的权限传给了其内容,以后挪入到该文件夹的文件仍然会保持该文件本身的权限。再比如某个文件的所有者或管理员想允许其他用户对该文件拥有读写的权力,通过在显示文件简介中添加了该用户并设置了读写以后,其他用户不一定就可以对该文件读写,因为这还会受到该文件所在文件夹的权限的影响。

了解ACL和文件夹的权限对文件的共享具有重要的意义。同时应该注意的是,在Leopard上,即使是用户的Home下的文件夹都使用了ACL,这与Mac OS 10.4及以前版本区别很大。而这些权限,一旦出现错误,并不是可以通过磁盘工具的修复权限的功能所能修复的,因为磁盘工具的修复权限是通过硬盘下资源库里的Receipts里的bom文件和数据库进行的,只能对所安装的pkg文件的权限进行修复。 总之,了解ACL对处理文件系统故障也有一定的意义。

在文件权限的处置和管理上,如果要从”显示简介”中添加用户来共享某些项目(系统自动调动了ACL)或在终端上设定ACE,应该注意尽量针对含有所要共享文件的文件夹进行操作,而不是直接对文件进行共享与权限进行设置。而且尽量添加共享用户组,而不是逐个添加共享用户。

在终端下,查看文件或文件夹的ACL权限的方法是,输入:

ls -le 文件夹的路径 回车

在终端下,给用户读文件或文件夹的ACL权限的方法是,输入:

chmod +a “用户名 allow read” 文件或文件夹路径 回车

拒绝客人访问某文件或文件夹的方法是,输入:

chmod +a “guest deny read” 文件或文件夹路径 回车

除了可读(read)以外,还可以用delete, readattr, write, readextattr, writeextattr, readsecurity, writesecurity, chown等权限关键词来代替上文中的”read”。文件夹的权限比文件要多。更多的内容和方法应该参见chmod和ls的man(ual)帮助。

Tags: Mac OS X文件系统常见问题 · Leopard操作系统问题



迄今为止5 篇回复↓

  • 1 william chen // Dec 27, 2007 at 8:46 pm

    你好!我一直关注你的博客。昨天不知是用了OnyX还是Leopard Cache Cleaner优化应用文件和RAM的关系,我的磁盘权限被修改了,磁盘工具也不能修复,现在在Apple菜单里不能关机和重新启动了。请教怎么办?细节如下:
    正在修复“Macintosh HD”的权限
    警告:SUID 文件“System/Library/Filesystems/AppleShare/afpLoad”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Filesystems/AppleShare/check_afp.app/Contents/MacOS/check_afp”已被修改,将不被修复。
    警告:SUID 文件“usr/libexec/load_hdi”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/Resources/DiskManagementTool”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/Locum”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PrivateFrameworks/Install.framework/Versions/A/Resources/runner”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/Resources/PrinterSharingTool”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Frameworks/SystemConfiguration.framework/Versions/A/Resources/SCHelper”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Extensions/webdav_fs.kext/Contents/Resources/load_webdav”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PrivateFrameworks/Admin.framework/Versions/A/Resources/readconfig”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PrivateFrameworks/Admin.framework/Versions/A/Resources/writeconfig”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PreferencePanes/DateAndTime.prefPane/Contents/Resources/TimeZone.prefPane/Contents/Resources/TimeZoneSettingTool”已被修改,将不被修复。
    警告:SUID 文件“usr/libexec/authopen”已被修改,将不被修复。
    警告:SUID 文件“System/Library/CoreServices/Finder.app/Contents/Resources/OwnerGroupTool”已被修改,将不被修复。
    警告:SUID 文件“System/Library/PrivateFrameworks/NetworkConfig.framework/Versions/A/Resources/NetCfgTool”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Printers/Libraries/aehelper”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Printers/Libraries/csregprinter”已被修改,将不被修复。
    警告:SUID 文件“System/Library/Printers/IOMs/LPRIOM.plugin/Contents/MacOS/LPRIOMHelper”已被修改,将不被修复。
    警告:SUID 文件“System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent”已被修改,将不被修复。
    警告:SUID 文件“System/Library/CoreServices/SecurityFixer.app/Contents/Resources/securityFixerTool”已被修改,将不被修复。
    警告:SUID 文件“Applications/System Preferences.app/Contents/Resources/installAssistant”已被修改,将不被修复。
    警告:SUID 文件“Applications/Utilities/Activity Monitor.app/Contents/Resources/pmTool”已被修改,将不被修复。
    警告:SUID 文件“Applications/Utilities/Keychain Access.app/Contents/Resources/kcproxy”已被修改,将不被修复。
    警告:SUID 文件“Applications/Utilities/ODBC Administrator.app/Contents/Resources/iodbcadmintool”已被修改,将不被修复。

  • 2 william chen // Dec 27, 2007 at 8:49 pm

    验证磁盘权限和验证磁盘都没问题。

  • 3 marblesm // Dec 28, 2007 at 8:46 pm

    回1楼:
    选强制关机,然后重新启动,看看是否还存在以上问题。如果是cache问题,这么做或可恢复。

    另外,用活动监视器(Activity Monitor)和控制台(console)看看你在点击关机或重新启动时,有什么反应,以及系统日志上有什么错误信息。

  • 4 hym // Sep 16, 2008 at 5:36 am

    楼主知道鼠标右键选更改桌面背景之后系统只是嘣的响了声就没反映了该怎么办么,能不能给我发个邮件教教我

  • 5 marblesm // Sep 16, 2008 at 7:17 am

    回4楼:

    使用系统偏好设置,你是否能够修改桌面背景?

您必须登录方可回复