我为开发者创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
组中,然后给其他的失去的团体。