我有一个目录来存储发票 -
drwxrwxr-x 2 me www-data 49152 Sep 9 13:38 invoices
有两个应用程序将文件写入此目录。
PHP 网络应用程序
-rw-r--r-- 1 www-data www-data 7681 九月 9 13:38 Invoice_1.html
Python脚本
-rw-rw-r-- 1 我我 8911 九月 4 日 06:04 Invoice_2.html
现在我想从网络应用程序覆盖invoice_2.html。我怎么做?
我不想加www-data
群me
。我不知道如何,但这将使我的服务器容易受到安全威胁。
帮帮我。
谢谢。
答案1
两个选项(均按 执行root
):
第一的
如果您很高兴成为me
该小组的成员www-data
:
将用户添加me
到www-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
都具有写入权限,因为它们是具有此写入权限的组的成员。me
www-data
invoices