如何在 Ubuntu 22.04 上安全地更改 apache 用户(www-data)的 uid 和 gid

如何在 Ubuntu 22.04 上安全地更改 apache 用户(www-data)的 uid 和 gid

我遇到了一个非常特殊的情况,需要从一个品牌的 Linux 迁移到 ubuntu 22.04。到目前为止一切顺利。除其他事项外,原始设置有多个用户和相应的目录,它们与 apache webserver 用户和/或组相关联,这些用户和/或组的 uid 和 gid 与 Ubuntu 上的不同。为了最大限度地减少权限问题,我们正在考虑将 www-data uid 和 gid 更改为原始操作系统的 uid 和 gid(两个值均为 48,而原始值为 33)。问题是当我尝试这样做时,我收到以下消息:

sudo -- usermod -u 48 www-data
usermod: user www-data is currently used by process 717

因此,如果我寻找与 www-data 相关的文件和目录,这就是列表

sudo -- find / -user 33

/proc/717
/proc/717/task
/proc/717/task/717
/proc/717/task/717/fdinfo
/proc/717/task/717/net
/proc/717/task/717/attr
/proc/717/task/717/attr/smack
/proc/717/task/717/attr/apparmor
/proc/717/fdinfo
/proc/717/net
/proc/717/attr
/proc/717/attr/smack
/proc/717/attr/apparmor
/proc/718
/proc/718/task
/proc/718/task/718
/proc/718/task/718/fdinfo
/proc/718/task/718/net
/proc/718/task/718/attr
/proc/718/task/718/attr/smack
/proc/718/task/718/attr/apparmor
/proc/718/fdinfo
/proc/718/net
/proc/718/attr
/proc/718/attr/smack
/proc/718/attr/apparmor
find: ‘/proc/2240/task/2240/fd/6’: No such file or directory
find: ‘/proc/2240/task/2240/fdinfo/6’: No such file or directory
find: ‘/proc/2240/fd/5’: No such file or directory
find: ‘/proc/2240/fdinfo/5’: No such file or directory
/run/apache2/socks
/run/php
/run/php/php8.2-fpm.sock
/run/lock/apache2
/var/cache/apache2/mod_cache_disk
/var/lib/apache2/fcgid
/var/lib/apache2/fcgid/sock

Apache 服务当然已停止

缺什么?

答案1

运行的守护进程(根据您的日志)是php-fpm。此守护进程通常以 apache 用户身份运行,因此请停止守护进程并重试该操作。

成功更改 UID 后,不要忘记更改文件的所有权。

相关内容