症状: 用Finder显示文件或文件夹的简介,在共享和权限下,用户组名变成了Unkown。点击加号后,文件简介自动退出,finder重启。

原因: 采用了升级安装Leopard。Leopard升级没有将在先前版本下所建立用户的用户组正确更新,造成用户的文件或文件夹下的用户组仍然沿袭先前版本的用户组。另外,在使用某些Leopard的升级盘进行升级时,用户的文件夹没有添加ACL权限。
解决方法:
以下步骤需要在终端(Terminal)下进行,并将直接在系统目录服务(Directory Service)的数据库下工作,如果出错可能导致不能登录系统。
1。用组合键⌘键、shift键和u键,或用Finder窗口导引到实用工具(Utilities)文件夹。找到终端(Terminal),并双击打开。
2。输入: cd /Users 回车
3。输入: ls -le 回车。对每个用户应该出现类似下面的结果:
drwxr-xr-x+ 14 marbles staff 476 Nov 28 10:47 marbles
0: group:everyone deny delete
上面显示的是用户marbles的Home的情况。在你的机器上,用户名当然应该是你自己的所设置的用户短名称。
如果用上面命令显示文件夹信息时,某个用户的显示上,在上面显示”staff”的地方显示的是用户名,说明你机器上用户的用户组不对。如果你目前登录的账户没有这种情况,而其它用户有的话,可以到账户偏好设置,从登录选项(Login Options)中勾选”快速用户切换”(Enable fast user switch)。然后从屏幕右上角的菜单下选择有问题的用户并登录,登录后重复第1、2步,然后接第4步。
如果用上面命令显示时,你的某个用户只有一行,而不是有两行或两行以上,说明系统对该用户没有添加ACL权限。
4。在终端下输入: dscl localhost 回车
终端将出现”>”,进入交互状态,等待继续输入。
5。输入: cd /Local/Default/Groups 回车
6。输入: read staff 回车
终端将显示staff用户组的资料。注意检查这两项:GroupMembership和PrimaryGroupID。GroupMembership应该包含你的短用户名;而PrimaryGroupID在缺省情况下,应该是20。
7。输入: auth 管理员账户的短用户名 回车。
然后输入密码并回车。
8。输入: append staff GroupMembership ‘你的短用户名’ 回车。
回车后,可以再输入: read staff 回车,检查一下看看GroupMembership一项里有没有加上该用户。
9。输入: cd /Local/Default/Users 回车。
10。输入: read 你用户的短用户名 回车。终端将显示出该用户的信息,注意其中的PrimaryGroupID一项的值。
11。输入: change 你的用户的短用户名 PrimaryGroupID 第10步找出的数值 20 回车。
这个20,是staff用户组的ID。输入回车后,再次输入: read 你的用户的短用户名 回车。此时,在显示中这个PrimaryGroupID一项的值应该改成为20。
12。输入: quit 回车。系统退出dscl。
13。输入: chgrp -R staff 你用户的短用户名 回车。
系统将更新该用户Home及以下的文件夹和文件的用户组信息。终端会出现一些显示行,说明某个文件夹的权限不能修改 - “Operation not permitted”。这些文件夹的权限不能修改是因为其所有人不是你目前的用户,也就是说该文件夹本来就不需要你的更改。
此步做完以后,如果在桌面上有以前建立的文件或文件夹,可以用Finder的显示简介(Get Info)或组合键⌘和i键,检查该文件或文件夹的用户组权限。此时应该已经变成”staff”。
14。如果在第三步中发现该用户没有ACL权限,而你想添加ACL的话,可以在终端下输入:
chmod -R +a “everyone deny delete” 用户名 回车
再次输入 ls -le 回车后,该用户Home及下面的文件夹的ACL权限应该是” 0: group:everyone deny delete”
迄今为止1篇回复↓
1 unknown // Nov 29, 2007 at 7:24 pm
英雄,能否开个帖子讲讲 mac os x 系统性能优化?
您必须登录方可回复