Extended Attributes and ACLs on MacOS X
The last article on this topic covered Linux systems, let's see how things are on MacOS X:
EA - Extended attributes
Extended attributes (arbitrary name/value pairs) are marked with an @ sign on the command line:
$ ls -l .DS_Store -rw-------@ 1 bob staff 24580 Aug 7 01:04 .DS_Store $ xattr -l .DS_Store com.apple.FinderInfo: 00000000 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 | ........| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 $ xattr -p com.apple.FinderInfo .DS_Store 20 20 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 $ xattr -d com.apple.FinderInfo .DS_StoreWith the last command, we removed the extended attribute from the file. But there's more:
ACLs - Access Control Lists
With the EA removed, a plus-sign (+) appears, marking Access Control Lists. They can be shown with ls(1) and changed with chmod(1):
$ ls -l .DS_Store -rw-------+ 1 bob staff 24580 Aug 7 01:04 .DS_Store $ ls -le .DS_Store -rw-------+ 1 bob staff 24580 Aug 7 01:04 .DS_Store 0: group:everyone deny deleteSomehow this ACL was set for many (all?) files in my home directory and it was impossible to delete files w/o entering the admin password first. Removing the ACL helped:
$ rm -f .DS_Store rm: .DS_Store: Permission denied $ chmod -a "group:everyone deny delete" .DS_Store $ ls -le .DS_Store -rw-r--r--- 1 bob staff 24580 Aug 7 01:04 .DS_StoreDeleting this ACL from all objects in
$HOME
with chmod -R
helped indeed and deleting files is now possible again, w/o being asked for a password.