我有一个用户didongo
(用户和组didongo
)和 nginx 服务器(用户和组www-data
)。我已经设置 Capifony 以didongo
用户身份登录:我第一次部署setfacl
命令工作正常(而日志文件夹为空)。但是在由 nginx 提供服务的 Web 应用程序生成了一些日志 (prod.log) 之后,下一次部署失败并出现setfacl
错误。
我确定我在用户和 Web 服务器之间的权限上犯了一个 noob 错误,但我没有看到什么错误。我看到didongo
应该无法更改他没有权限的文件的权限。但是,我应该如何配置服务器或 Capifony?
谢谢!
相关(希望如此) Capifony deploy.rb 配置:
set :user, "didongo"
set :webserver_user, "www-data"
set :permission_method, :acl
set :use_set_permissions, true
set :shared_children, [app_path + "/logs", web_path + "/uploads", "vendor"]
set :writable_dirs, ["app/cache", "app/logs"]
这是 Capifony 错误:
$ setfacl -R -m u:didongo:rwx -m u:www-data:rwx /home/didongo/staging/shared/app/logs
setfacl: /home/didongo/staging/shared/app/logs/prod.log: Operation not permitted
ACL 的一些数据:
$ getfacl app/logs
# file: logs
# owner: didongo
# group: didongo
user::rwx
user:www-data:rwx
user:didongo:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:didongo:rwx
default:group::rwx
default:mask::rwx
default:other::r-x
# file: logs/prod.log
# owner: www-data
# group: www-data
user::rw-
user:www-data:rwx #effective:rw-
user:didongo:rwx #effective:rw-
group::rwx #effective:rw-
mask::rw-
other::r--