我使用的是 Ubuntu 10.10 64 位,并创建了一个组“dcc”,我将自己作为用户“ralc”添加到该组。注销并重新登录后,我尝试了命令“groups”,它给出了以下行:
ralc adm ... dcc
(部分组别省略)
然后我创建了一个目录“dccdir”,使用chmod g=rwx dccdir; chmod u= dccdir
并更改了目录组chgrp dcc dccdir
。结果ls -l | grep dcc
如下:
d---rwxr-x 2 ralc dcc 4096 2011-04-26 18:56 dccdir
现在来看看真正的问题:看到我与目录位于同一组中,我认为我应该能够访问并列出目录的内容。但是,当我这样做时,ls dccdir
我收到以下消息:
bash: cd: dccdir/: Permission denied
你能解释一下我错在哪里吗?
答案1
由于您拥有该目录,因此仅应用“所有者”权限位。“组”和“世界”权限将被忽略。
引用手册页path_resolution(7)
:
权限
文件的权限位由三组三位组成,参见。chmod(1)和统计(2)。当调用进程的有效用户 ID 等于文件的所有者 ID 时,使用第一组三个。第二组(三个)用于当文件的组 ID 等于调用进程的有效组 ID,或者是调用进程的补充组 ID 之一(由 设置组(2))。当两者都不成立时,使用第三组。