尝试创建目录时出现此错误:
[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)
您可能将自己添加到该www-data
组中,之后没有重新登录。要更改您的组成员资格,您可以使用
sg www-data
Run Code Online (Sandbox Code Playgroud)
获取具有适当权限的新外壳。
组将从数据库中返回数据,而不是您的有效权限 - 来自 man 组:
打印每个 USERNAME 的组成员身份,如果没有指定 USERNAME,则打印当前进程的组成员身份(如果组数据库已更改,则可能会有所不同)。