为什么会出现此错误:“无法创建目录‘foo’:权限被拒绝”

Rex*_*exE 5 permissions group

尝试创建目录时出现此错误:

[rex <03:57 PM> /var/tmp/pb82]$  mkdir foo
mkdir: cannot create directory `foo': Permission denied
Run Code Online (Sandbox Code Playgroud)

但是以下输出是否表明我应该能够在那里创建目录,因为我是该目录所属的 www-data 组的成员?

[rex <03:57 PM> /var/tmp/pb82]$  ls -l ..
total 8
drwxrwxr-x 5 root www-data 4096 Aug  7 15:32 jinfo
drwxrwxr-x 3 root www-data 4096 Aug  7 20:43 pb82
[rex <03:58 PM> /var/tmp/pb82]$  whoami
rex
[rex <03:58 PM> /var/tmp/pb82]$  groups rex
users www-data
Run Code Online (Sandbox Code Playgroud)

编辑:回应@UlrichDangel:

[rex <04:08 PM> /var/tmp/pb82/jinfo]$  id
uid=1008(rex) gid=100(users) groups=100(users)
Run Code Online (Sandbox Code Playgroud)

Ulr*_*gel 9

您可能将自己添加到该www-data组中,之后没有重新登录。要更改您的组成员资格,您可以使用

sg www-data
Run Code Online (Sandbox Code Playgroud)

获取具有适当权限的新外壳。

组将从数据库中返回数据,而不是您的有效权限 - 来自 man 组:

打印每个 USERNAME 的组成员身份,如果没有指定 USERNAME,则打印当前进程的组成员身份(如果组数据库已更改,则可能会有所不同)。