我已将用户“test”添加到 myuser 组中usermod -a -G test myuser
。但如果我尝试执行或尝试 cd 到datadir
“test”用户,则会出现没有权限错误。datadir
具有以下权限770
,并且用户“测试”属于myuser
该组,但仍然给出没有权限错误。
drwxrwx--- 3 myuser myuser 4096 Feb 6 16:24 datadir
$ grep "^test" /etc/group
test:x:503:myuser
$ groups myuser
myuser : myuser test
答案1
您没有告诉我们 的父目录权限datadir
。即使您对某个文件夹拥有完全权限,您也无法访问它,除非您对其父级也拥有适当的权限。因此,您需要查看完整路径权限。例如,如果您有如下层次结构:
/var/subdir/datadir/
subdir
您还应该检查和的权限/var
。这只是一个说明性示例。
答案2
不,你读反了。myuser
属于test
群体,而不是相反。
答案3
更改的组成员身份只有在重新登录后才会生效。您可以通过运行来确认groups
。注销并重新登录即可解决此问题。
答案4
看看用户运行时是否显示“mysuser” groups
。我怀疑问题是用户在您使用的 shell 中没有组权限。如果您将用户添加到组,现有登录将不会获得组权限。用户必须再次登录才能获得新权限。
或者,在现有的 shell 中,用户可以运行newgrp myuser
以使用该新组创建一个子 shell,但是,这会改变该 shell 中该用户的默认组,因此在该 shell 中创建的文件默认将归 mygroup 而不是该用户的默认组所有,这可能是也可能不是所希望的。