我在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而不是该用户的默认组,这可能或不可取。