允许用户创建并写入日志文件夹

允许用户创建并写入日志文件夹

当收到电子邮件时,我使用 Exim4 运行 PHP 脚本。

如果不存在,此脚本应该在 /var/log/myapp 文件夹中创建一个文件,否则它应该读取该文件并向日志中添加更多内容。

我对文件夹应用 777 权限进行了一些测试,发现 Exim4 使用的用户是nobody

但是,在某些情况下,我的管理用户(例如bob)可以通过 PHP CLI 手动运行 PHP 文件并使用这些日志文件。

我运行以下命令来添加我的用户和无人来写入该文件夹,但只有我的用户可以创建文件,而“无人”不能。

sudo groupadd eximapplog

sudo usermod -a -G eximapplog bob
sudo usermod -a -G eximapplog nobody

sudo chgrp -R eximapplog /var/log/myapp
sudo chmod g+rwx /var/log/myapp

sudo chmod -R 775 /var/log/myapp

我可能做错了什么?

答案1

我认为错误来自于您的用户(bob)和“nobody”用户之间的权限级别差异。

让我们尝试调整 PHP 脚本或 Exim4 配置,以便它以特定的非 root 用户身份运行。

首先,我们创建新用户和新组。

sudo adduser eximappuser
sudo groupadd eximappgroup

然后我们将 eximappuser 和 bob 添加到我们的新组中

sudo usermod -a -G eximappgroup eximappuser
sudo usermod -a -G eximappgroup bob

我们更改所有者权利

sudo chown -R eximappuser:eximappgroup /var/log/myapp

然后我们更改 var/log/myapp 的权限,以允许所有者和组读取、写入和执行

然后你必须配置Exim4或 PHP 脚本以“eximappuser”而不是“nobody”的身份运行

相关内容