关于leopard下的权限问题和@符号的意义
Mac OS X Leopard下的文件权限改变比较大,经常会出现一些文件权限上的问题,比如使用权限修复时可能会出现下面的问题:
********** 2008-03-17 13:39:37 +0800: “磁盘工具”已启动。 2008-03-17 13:39:47 +0800: 正在修复“Macintosh HD”的权限 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-autoindex.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-dav.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-default.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-info.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-languages.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-manual.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-mpm.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-multilang-errordoc.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-ssl.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-userdir.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra/httpd-vhosts.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/extra”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/magic”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/mime.types”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-autoindex.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-dav.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-default.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-info.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-languages.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-manual.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-mpm.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-multilang-errordoc.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-ssl.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-userdir.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra/httpd-vhosts.conf”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/extra”上。 2008-03-17 13:44:25 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original/httpd.conf”上。 2008-03-17 13:44:26 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/original”上。 2008-03-17 13:44:26 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/other/bonjour.conf”上。 2008-03-17 13:44:26 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/other/php5.conf”上。 2008-03-17 13:44:26 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/other”上。 2008-03-17 13:44:26 +0800: 已找到 ACL,但它不是按期望的在“private/etc/apache2/users”上。 2008-03-17 13:44:26 +0800: “private/etc/profile”上的权限不一致,应该是 -r--r--r-- ,却为 -rw-r--r-- 。 2008-03-17 13:45:25 +0800: 已找到 ACL,但它不是按期望的在“Applications”上。 2008-03-17 13:45:28 +0800: 已找到 ACL,但它不是按期望的在“Library”上。 2008-03-17 13:45:30 +0800: 2008-03-17 13:45:30 +0800: 完成权限修复 2008-03-17 13:45:30 +0800: 2008-03-17 13:45:30 +0800:
主要是ACL的问题,不管修复几次都会存在,挥之不去,相当噩梦.只要用下面的命令即可解决
chmod -RN /etc/apache2
-R是递归,-N是删除所有ACL
另外细心的人都会发现,leopard下面的文件属性后面多了个@(以前最常见的是+),比如
drwxr-xr-x@ 6 Sam staff 204B 1 26 23:53 .subversion
这个符号代表这个目录或者文件带有扩展属性.一般情况下,这个问题要归功于Time Machine.
想要看一下@符号里面藏了什么东西,可以用下面的命令
ls -lh@Sam@Bogon-2:~$ ls -lh@ total 128drwx------@ 28 Sam wheel 952B 3 17 13:38 . com.apple.metadata:_kTimeMachineNewestSnapshot 50B com.apple.metadata:_kTimeMachineOldestSnapshot 50B drwxr-xr-x 5 root admin 170B 3 15 18:56 .. -rw------- 1 Sam staff 5B 3 15 18:56 .CFUserTextEncoding -rw-r--r--@ 1 Sam staff 12K 3 17 14:15 .DS_Store com.apple.FinderInfo 32B drwx------ 2 Sam wheel 68B 3 17 14:10 .Trash -rw------- 1 Sam staff 6.2K 3 17 14:15 .bash_history drwx------@ 9 Sam wheel 306B 3 17 14:05 .gnupg com.apple.metadata:_kTimeMachineNewestSnapshot 50B com.apple.metadata:_kTimeMachineOldestSnapshot 50B -rw------- 1 Sam staff 35B 3 17 14:14 .lesshst -rwxr-----@ 1 Sam staff 177B 3 16 16:22 .login com.apple.TextEncoding 15B -rw------- 1 Sam wheel 119B 3 17 13:11 .mysql_history -rw-r--r--@ 1 Sam staff 741B 3 16 19:49 .profile com.apple.metadata:_kTimeMachineNewestSnapshot 50B com.apple.metadata:_kTimeMachineOldestSnapshot 50B drwx------@ 6 Sam staff 204B 2 29 13:29 .ssh com.apple.metadata:_kTimeMachineNewestSnapshot 50B com.apple.metadata:_kTimeMachineOldestSnapshot 50B drwxr-xr-x@ 6 Sam staff 204B 1 26 23:53 .subversion com.apple.metadata:_kTimeMachineNewestSnapshot 50B com.apple.metadata:_kTimeMachineOldestSnapshot 50B -rw------- 1 Sam staff 7.5K 3 17 13:33 .viminfo -rw-r--r--@ 1 Sam staff 41B 3 16 14:49 .vimrc com.apple.metadata:_kTimeMachineNewestSnapshot 50B com.apple.metadata:_kTimeMachineOldestSnapshot 50B ...
@符号的存在,没什么大碍.但如果你发现某天某个文件夹里面写不进去东西了,但用户/用户组的权限都正确,那么就要考虑清理ACL了.目前暂时还不知道这个BUG是如何造成的.