创建 www-data 和 myuser 都可以编辑的文件

创建 www-data 和 myuser 都可以编辑的文件

我有一个目录来存储发票 -

drwxrwxr-x  2 me www-data   49152 Sep  9 13:38 invoices

有两个应用程序将文件写入此目录。

  1. PHP 网络应用程序

    -rw-r--r-- 1 www-data www-data 7681 九月 9 13:38 Invoice_1.html

  2. Python脚本

    -rw-rw-r-- 1 我我 8911 九月 4 日 06:04 Invoice_2.html

现在我想从网络应用程序覆盖invoice_2.html。我怎么做?

我不想加www-datame我不知道如何,但这将使我的服务器容易受到安全威胁。

帮帮我。

谢谢。

答案1

两个选项(均按 执行root):

第一的

如果您很高兴成为me该小组的成员www-data

将用户添加mewww-data组中:

# usermod -a -G www-data me

设置设置GID目录上的标志invoices

# chmod g+s /<path>/<to>/invoices

现在,由于设置了 SetGID 位,因此在目录中创建的任何文件invoices都将其组设置为www-data(目录的组)。由于用户me属于该组,因此该用户将有权写入该文件。

第二

如果您不希望用户me成为该www-data组的成员,那么......

创建一个新组 - invoices.

# groupadd invoices

将用户me和添加www-data到该组。

# usermod -a -G invoices me
# usermod -a -G invoices www-data

将目录的组更改invoices为这个新组 ( invoices)。

# chown .invoices /<path>/<to>/invoices

确保该组invoices对该目录具有写权限:

# chmod g+w /<path>/<to>/invoices

设置设置GID目录上的标志invoices

# chmod g+s /<path>/<to>/invoices

现在,该invoices目录将归该组所有,并且由于在该目录上设置了 SetGID 位,因此invoice在该目录中创建的任何文件都将其所属组设置为该组。和invoices都具有写入权限,因为它们是具有此写入权限的组的成员。mewww-datainvoices

相关内容