【问题标题】:Capifony setfacl permissions: "Operation not permitted"Capifony setfacl 权限:“不允许操作”
【发布时间】:2013-01-21 00:42:06
【问题描述】:

我有一个用户 didongo(用户和组 didongo)和 nginx 服务器(用户和组 www-data)。我已经设置 Capifony 以didongo 用户身份登录:我第一次部署setfacl 命令工作正常(而日志文件夹为空)。但是在由 nginx 提供服务的 Web 应用程序生成了一些日志 (prod.log) 之后,下一次部署失败,出现 setfacl 错误。

我确定我在用户和 Web 服务器之间的权限方面犯了一个新手错误,但我没有看到什么错误。我看到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--

【问题讨论】:

    标签: permissions nginx capistrano acl capifony


    【解决方案1】:

    使用 sudo 尝试一次,之后就不需要使用 sudo

    sudo sh -c 'setfacl -R -m u:didongo:rwX -m u:www-data:rwX /home/didongo/staging/shared/app/logs'
    

    因为需要设置x+权限,请看这篇What is trailing Plus indicates

    【讨论】:

      【解决方案2】:

      这里的问题是prod.log 文件是自动创建的,所以它的所有者是www-data。 Capifony 以didongo 用户身份运行部署。一个用户不能对另一个所有者的文件执行setfacl

      所以只需将didongo 添加到群组www-datasudo adduser didongo www-data

      【讨论】:

        【解决方案3】:

        最后,我创建了具有与用户相同权限的不同 PHP-FPM 池。这样我可以让不同的用户彼此分开。作为奖励,deploy.rb 被简化了。

        【讨论】:

          猜你喜欢
          • 2014-04-13
          • 2020-03-26
          • 2017-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多