A bit more detail on 'Special Permissions' in Disk Utility

Sep 22, '05 08:05:00AM

Contributed by: vykor

This hint might be a bit obvious to an expert, but the information seems somewhat obscure. During Disk Utility Permission Repair, you sometimes see messages along the lines of "We are using special permissions for the file or directory [some file or folder]. New permissions are [some values]." These messages show up every time you make repairs. According to Apple Support document 107298, you can safely ignore them. They are, in fact, just status messages to inform you that the default permissions specified for these files have been overriden elsewhere. But ever wonder where some of these special permission overrides are defined?

Point your text editor at /System -> Library -> PrivateFrameworks -> DiskManagement.framework -> Resources -> HintFile.plist, and have a look. In the specificFileSettings dict node, there's a set of entries with a path and a corresponding permissions value. You'll notice that Apple has already set some existing special permissions -- namely, the files named in the Disk Utility messages that you keep seeing. Adding new entries to this dict will allow you to specify special permissions to override those listed in in the BOMs in /Library/Receipts, and Disk Utility seems to faithfully apply the newly defined permission and inform you of it with a new "We are using special permissions..." message during repairs.

The permission values themselves seem odd. With values like 16877 (for /Library/Widgets in 10.4.2), these aren't the octal-representation permission settings normally used with chmod, but seem to be decimal conversions of those octal values. You also can't seem to put in just any arbitrary path -- specifying special permissions for a newly created file foo.txt in my home directory did not work. It is possible that Disk Utility only applies these override permissions for files already listed in a receipt.

Comments (7)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20050919160542719