将 chroot 应用于组时出错(groupmod:组 'www' 不存在)

Error applying chroot to group (groupmod: group 'www' does not exist)

所以我试图将 www 组中的所有用户 chroot 到目录 /var/www。但每次我尝试这样做时,它都会返回说该组不存在。 (即使该组确实存在)

[root@server var]# cat /etc/fedora-release
Fedora release 26 (Twenty Six)
[root@server var]# groupadd -r www
[root@server var]# groupmod -R /var/www www
groupmod: group 'www' does not exist
[root@server var]# ls -la
drwxrwxrwx.  5 root www     46 Jul 12 06:44 www

如您所见,错误消息没有多大用处。我环顾了 Whosebug,但还没有找到这个特定问题的答案。

任何人都可以阐明我做错了什么吗?

那不是 groupmod -R 所做的。意思就是groupmod程序会chroot进入目录,然后做所有的事情。它适用于将一个系统安装在另一个系统中的情况,例如,如果您从实时 USB 驱动器启动以对损坏的系统进行更改。

一旦 groupmod 有 运行 chroot,它会在 /var/www/etc/group 文件中查找 www 对应的组 ID,当然失败,因为如果您的系统完全正确设置,您就没有 var/www/etc/group 文件。

我不知道如何确保特定用户 运行 在 chroot 中执行所有进程,我认为这不是实现目标的正确方法。如果一个程序被 chroot 编辑成 /var/www,它就无法访问它可能期望的任何实用程序,例如 Web 服务器可执行文件。相反,我会查看您的 Web 服务器的文档,看看它是否直接支持这一点,或者看看您是否可以使用 systemd 获得自定义挂载命名空间。