权限被拒绝为cd命令

我为开发者创build了一个,让他们访问:/ var / lib / dev,里面已经有一些文件夹和文件的文件夹。

我介绍的命令是:

$ sudo useradd -d /var/dev -M -r devmaster 

所以, devmaster是具有主组devmaster的新系统用户。 这可以检查出id

 $ id devmaster uid=998(devmaster) gid=998(devmaster) groups=998(devmaster) 

然后,我改变了权限(使用chmod / chown )如下:

 $ cd /var $ sudo chown -R root:devmaster dev $ sudo chmod -R o-wrx dev $ sudo chmod -R g+wrx dev 

最后(我的用户名只是刚刚):

 $ sudo usermod -G devmaster justme $ id justme uid=1000(justme) gid=1000(justme) groups=1000(justme),998(devmaster) $ ls -lh // Omitted drwxrwx--- 3 root devmaster 4,0K dic 12 19:48 dev // Omitted 

但是,如果我试图进入目录:

 $ cd dev -bash: cd: dev: Permission denied 

我怎么了?

你的问题是你没有重新启动你的会议后给自己一个新的组成员资格。 是的, id justme告诉你, justme 在将来login时,他(你)会拥有devmaster组员资格。 但是这并不影响他(你) 当前的 shell会话,就像id -a会告诉你的那样。

注销并重新login,检查你是否已经使用id -a获得了新的组成员资格,然后查看你是否可以cd /var/dev (或/var/lib/dev ,你的问题是不明确的)。

事情终于是,虽然我不知道为什么,但是我不得不注销并重新login来testing结果,除了以下情况外,除了:

 $ sudo usermod -G devmaster justme 

需要-a选项:

 $ sudo usermod -a -G devmaster justme 

因为如果不是,那么这个辅助组完全被devmaster取代,而不是和之前的任何一个组合在一起,因为justme是原始的pipe理帐户,所以我不在组sudo,adm,cdrom,plugdev等5个组中。

所以,我无法使用sudo ,而且由于系统中没有任何其他用户帐户,所以我必须重新启动计算机,以安全模式重新启动并打开一个root shell以将自己添加到sudo组中,然后给其他的失去的团体。