cd 命令的权限被拒绝

cd 命令的权限被拒绝

我为开发人员创建了一个组,让他们可以访问:/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

最后(这里我的用户名只是justme):

$ 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

我怎么了?

答案1

您的问题是您在为自己赋予新的组成员身份后没有重新启动会话。是的,id justme告诉您在justme登录时在未来,他将(您将)拥有 的群组成员资格devmaster。但这不会影响他(您的)当前的shell 会话,正如id -a你所告诉过你的一样。

注销并重新登录,检查您是否已获得新的组成员身份id -a,然后看看是否可以cd /var/dev(或/var/lib/dev,您的问题不明确)。

答案2

最后的事情是,虽然我不知道为什么,但我必须注销并再次登录才能测试结果,其工作原理如下:

$ sudo usermod -G devmaster justme

需要-a选项:

$ sudo usermod -a -G devmaster justme

因为如果不是,则次要组将完全被替换devmaster,而不是与之前分配的任何组连接起来,并且由于是justme原始管理帐户,所以我退出了 sudo、adm、cdrom、plugdev 和其他 5 个组。

因此,我无法使用sudo,而且由于系统中没有其他用户帐户,我不得不重新启动机器,以安全模式重新启动并打开 root shell 将我本人添加到该sudo组和其他丢失的组中。

相关内容