写错误,因为两个不同的用户可以创build一个日志文件

我对Linux / Ubuntu合理的经验不足,并且挣扎于我认为是一个相当简单的权限问题。 我遇到了两个不同的用户正在创build日志文件的问题,这可能会导致写入问题,这取决于哪个用户首先写入,即使它们在同一个组中。

用户: 服务器用户属于www-datawww-data用户也属于www-data

当日志文件被创build时,它具有644(-rw-r – r–)的权限。 所以用户可以写信给它,但是这个组不能。

那么服务器会先写信给它,但是www-data不能,反之亦然。

在Ubuntu中,有什么办法可以:

  • 让两个用户完全写入一个文件夹覆盖文件的权限?
  • 在文件夹中创build默认文件时更改权限?

细节:

  • Ubuntu 16.04.2 LTS
  • 这是一个在Apache下运行的PHP / Laravel应用程序。 但是也有一些命令行工具,cron作业等,一旦调用到Laravel基础架构中,这些工具都将写入日志文件。 所以这似乎是一个随机的机会,首先写入文件。
  • 我确实看到这篇文章( 我怎样才能设置由apache2上传文件的默认权限? )关于使用umask,但我希望这不是唯一的解决scheme。 我不想改变如何在Apache中创build所有的日志文件。 感觉就像用锤子杀死一只ant。

一个可能的解决scheme是

  1. 创build新的组
  2. 将两个用户添加到该组,并将其作为主要用户
  3. 将umask更改为002,以便创build的文件具有像664那样的权限
  4. 允许像775或770这样的文件夹

所以我的问题已经解决了…虽然我不完全确定是什么修复了它。 现在正在创build文件,用户和组拥有写入权限,这听起来像umask。 我认为解决scheme是使用以下命令在文件上设置ACL:

sudo setfacl -d -m group:www-data:rw /var/www/application/storage/logs