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