我在 docker 中运行 nextcloudpi 的一个实例。我想通过 rsync 在两个服务器之间同步数据文件夹,但得到了一个权限文件夹。所以我尝试授予我的用户“John”读取该文件夹的权限。似乎我做错了什么,因为知道实例无法访问数据文件夹,并且在浏览器中尝试访问 nextcloud 时,我收到“您无权访问此资源”。有人可以告诉我如何解决这个问题吗?文件夹中的权限应该是什么?现在,我有以下权限:
$:/var/lib/docker$ sudo ls -l
drwx--x--x 4 root root 8 Mai 28 20:09 buildkit
drwx------ 3 root root 3 Jun 17 18:25 containers
drwx------ 3 root root 3 Mai 28 20:09 image
drwxr-x--- 3 root root 3 Mai 28 20:09 network
drwx------ 4 root root 4 Mai 28 20:09 plugins
drwx------ 2 root root 2 Jul 2 17:14 runtimes
drwx------ 2 root root 2 Mai 28 20:09 swarm
drwx------ 2 root root 2 Jul 2 17:14 tmp
drwx------ 2 root root 2 Mai 28 20:09 trust
drwxr--r-- 3 root root 5 Jul 2 17:14 volumes
drwx------ 3 root root 3 Mai 28 20:10 zfs
$ sudo ls -l volumes
total 7
brw------- 1 root root 0, 64 Jul 2 17:14 backingFsBlockDev
-rwxr--r-- 1 root root 32768 Jul 2 17:14 metadata.db
drwxr--r-- 3 root root 3 Mai 28 20:11 ncdata
答案1
为了避免权限问题,我建议使用linuxserver.io 的 NextCloud 镜像。这里您可以在docker或docker-compose配置文件中轻松设置PGID和PUID。
例如,如果 PGID 和 PUIDJohn
是 1000,则直接使用默认值。
通常,对于每个容器的数据,您应该具有以下权限:
- 对于文件:
-rw-r--r-- 1 John
- 对于目录:
-rwxr-xr-x 1 John
另外,您是否将用户添加John
到了组中docker
?使用此命令:
sudo usermod -aG docker John
通过groups
命令确认您是该组的成员docker
。