更改 php-fpm 组
Changing group of php-fpm
我想和另一个组一起执行php-fpm (7.2),同时留在原来的组。
目前 php-fpm 以 www-data 作为用户和组运行。我创建了一个新组 (testgrp) 并将用户 www-data 添加到该组。
www-data 有 gid: 33
testgrp 有 gid: 144
对于生成的 PHP-进程,/proc/PID/status
给我:
Uid: 33 33 33 33
Gid: 33 33 33 33
Groups: 33 144
这表明 php 以 www-data 作为用户和主组运行,但也在 testgrp 中。
当我在 /etc/php/7.2/fpm/pool.d/www.conf
中设置 group = testgrp
时,我得到:
Uid: 33 33 33 33
Gid: 144 144 144 144
Groups: 144
所以 php 以 testgrp 作为唯一组运行。
有没有办法在不失去 www-data 成员的情况下更改执行组?
所以在查看 php-fpm 的源代码后,我找到了解决方案:
我不得不将用户 www-data 添加到 www-data 组(再次)。
即使 www-data 是用户 www-data 的主要组,也必须在 /etc/group
中分配,因为 php-fpm 使用来自 /etc/group
+ 提供的组的组,同时忽略主要组。
我想和另一个组一起执行php-fpm (7.2),同时留在原来的组。
目前 php-fpm 以 www-data 作为用户和组运行。我创建了一个新组 (testgrp) 并将用户 www-data 添加到该组。
www-data 有 gid: 33
testgrp 有 gid: 144
对于生成的 PHP-进程,/proc/PID/status
给我:
Uid: 33 33 33 33
Gid: 33 33 33 33
Groups: 33 144
这表明 php 以 www-data 作为用户和主组运行,但也在 testgrp 中。
当我在 /etc/php/7.2/fpm/pool.d/www.conf
中设置 group = testgrp
时,我得到:
Uid: 33 33 33 33
Gid: 144 144 144 144
Groups: 144
所以 php 以 testgrp 作为唯一组运行。
有没有办法在不失去 www-data 成员的情况下更改执行组?
所以在查看 php-fpm 的源代码后,我找到了解决方案:
我不得不将用户 www-data 添加到 www-data 组(再次)。
即使 www-data 是用户 www-data 的主要组,也必须在 /etc/group
中分配,因为 php-fpm 使用来自 /etc/group
+ 提供的组的组,同时忽略主要组。