【发布时间】:2014-03-19 18:29:14
【问题描述】:
我正在尝试配置运行 Apache 和 Lasso 的 OSX Mavericks 服务器。为了安全和方便,我只希望属于特定“网络”组的用户能够访问网络根目录。我已成功让允许的普通用户和 Apache (_www) 访问这些文件,但我无法为 Lasso 设置正确的权限。我希望这里有人能指出我正确的方向。
基本上,我所做的如下:
sudo dseditgroup -o create web
sudo dseditgroup -o edit -a _www -t user web
sudo dseditgroup -o edit -a _lasso -t user web
sudo chgrp -R web webroot
sudo chmod -R 770 webroot
这显然适用于 Apache,但任何套索文件都只会输出套索权限错误:
An unhandled failure during a web request
Error Code: 13
Error Msg: Permission denied - While opening //Library/Server/Web/Data/Sites/...
我还尝试将 _www 和 _lasso 组添加到 web 组,以及在实例管理器中创建一个新的 Lasso 实例,并将有效组设置为“web”。
奇怪的是,直接在文件上设置 _lasso 用户或组的权限(即不通过网络组)似乎有效,这让我相信我创建 ACL 的方式有问题。
更多信息:
ls -l@e example.lasso
-rwxrwx---+ 1 danielpervan web 0 Feb 19 15:20 example.lasso
0: user:_spotlight inherited allow read,execute
【问题讨论】:
-
首先,您说访问 Lasso 文件时遇到的权限错误,那是什么?是套索错误和错误堆栈还是 Apache 错误?其次,我要么将 web 用户添加到 _lasso 组,要么将 _lasso 用户添加到 web 组。第三,如果您可以将“ls -l@e /path/to/lassofile.lasso”的结果作为示例发布,它可能会有所帮助。
-
@bfad 这肯定是一个套索错误。我编辑了我的问题以包含上述错误。
-
使用 ls -l@e 进一步检查后,似乎我从未真正将 ACL 应用于我的文件,而只是设置了 POSIX 组。不过,由于我不太熟悉 OSX 如何处理 ACL 和 POSIX 权限,我不确定为什么这适用于 Apache 而不是 Lasso。实际上,将 ACL 添加到文件中似乎可以解决问题,但我会多尝试一下,看看效果如何。谢谢!
标签: macos permissions acl lasso-lang