组合网络/网络共享:文件所有权和权限
Combined network- / webshare: file ownership and permissions
我正在使用 pyd.io 和 netatalk 的组合,让我的远程存储在家里和任何地方都可用。到目前为止(阅读)一切正常,但现在——在第一次尝试上传东西时——我遇到了一个让我头疼的问题。
目录 /mnt/data
通过 afpd
(netatalk) 共享给普通用户 pi
(是的,我从 Raspberry 开始)。因此,文件所有权是 pi:pi
,权限是 755
。效果很好:我可以在本地读写,也可以通过 netatalk 从 mac 读写。
同一目录通过 pyd.io 通过 apache2 共享。读取工作完美,但是,写入不是,因为 apache 在用户 www-data:www-data
下运行。如果我 chmod 到 777
用于测试目的,新文件将在 www-data:www-data
所有权下创建(当然)。但是,它们无法通过 netatalk 为用户 pi
写入。
我真的不知道如何解决这个问题,因为将两者结合起来(运行 pi 下的 apache 或类似的)似乎非常不安全。
我通过以下步骤解决了这个问题:
- 创建新组(在我的例子中
shared-data
)
- 将
www-data
和pi
添加到群组
- 将共享文件夹的权限更改为
664
- 使新文件夹的权限相同
chflags g+s -R /path
- 使新文件的权限与
setacl
相同
- 使 pyd.io 使用
664
创建新文件和文件夹
- 编辑
/usr/local/etc/afp.conf
中的 netatalk 共享:添加 file perm = 0664
和 directory perm = 0664
- 重新启动 apache 和 netatalk
我正在使用 pyd.io 和 netatalk 的组合,让我的远程存储在家里和任何地方都可用。到目前为止(阅读)一切正常,但现在——在第一次尝试上传东西时——我遇到了一个让我头疼的问题。
目录 /mnt/data
通过 afpd
(netatalk) 共享给普通用户 pi
(是的,我从 Raspberry 开始)。因此,文件所有权是 pi:pi
,权限是 755
。效果很好:我可以在本地读写,也可以通过 netatalk 从 mac 读写。
同一目录通过 pyd.io 通过 apache2 共享。读取工作完美,但是,写入不是,因为 apache 在用户 www-data:www-data
下运行。如果我 chmod 到 777
用于测试目的,新文件将在 www-data:www-data
所有权下创建(当然)。但是,它们无法通过 netatalk 为用户 pi
写入。
我真的不知道如何解决这个问题,因为将两者结合起来(运行 pi 下的 apache 或类似的)似乎非常不安全。
我通过以下步骤解决了这个问题:
- 创建新组(在我的例子中
shared-data
) - 将
www-data
和pi
添加到群组 - 将共享文件夹的权限更改为
664
- 使新文件夹的权限相同
chflags g+s -R /path
- 使新文件的权限与
setacl
相同
- 使 pyd.io 使用
664
创建新文件和文件夹
- 编辑
/usr/local/etc/afp.conf
中的 netatalk 共享:添加file perm = 0664
和directory perm = 0664
- 重新启动 apache 和 netatalk