权限被拒绝错误 – linux用户属于拥有的组

我在myuser组中添加了用户“test” usermod -a -G test myuser 。 但是,如果我尝试执行或试图CD为datadir作为“testing”用户给予权限被拒绝的错误。 datadir具有以下特权770 ,并且用户“test”属于myuser组,但仍然会给出Permission denied错误。

 drwxrwx--- 3 myuser myuser 4096 Feb 6 16:24 datadir $ grep "^test" /etc/group test:x:503:myuser $ groups myuser myuser : myuser test 

你没有告诉我们datadir的父目录权限。 即使您拥有对文件夹的完全权限,除非您对其父母拥有适当的权限,否则您将无法访问该文件夹。 所以,你需要看完整path权限。 例如,如果您有像下面这样的层次结构:

 /var/subdir/datadir/ 

你应该检查subdir/var的权限。 这只是一个说明性的例子。

不,你正在读这个倒退。 myuser属于test组,而不是相反。

更改的组成员身份只有在重新login后才能生效。 您可以通过运行groups来确认。 注销并重新login可以解决这个问题。

看用户运行groups时是否显示“mysuser”。 我怀疑问题是用户没有在您使用的shell的组权限。 如果您将用户添加到组,则现有login将无法获得组权限。 用户将不得不再次login才能获得新的权限。

或者,在现有的shell中,用户可以运行newgrp myuser来创build一个具有这个新组的子shell,但是这会改变该用户在该shell中的默认组,所以在该shell中创build的文件将默认为拥有由mygroup而不是该用户的默认组,这可能或不可取。