每当我打开 zsh shell 时,它都会输出以下 3 行:
compaudit:148: unknown group
compaudit:148: unknown group
compaudit:148: unknown group
当我运行该compaudit
命令时,它输出以下行:
compaudit:148: unknown group
我怀疑这与我损坏的 /etc/group 文件有关(这导致我的管理员帐户失去 sudo 权限,但我已使用恢复模式修复了该问题;但是,该损坏的文件也导致了许多与组相关的问题)我无法修复的错误)。我曾经在硬盘上备份我的系统,但最近它失败了,我没有更换它。
有没有办法解决这个问题,如果是因为 /etc/group 文件损坏,有什么方法可以恢复它吗?我使用的是 Ubuntu 16.04
答案1
这是例如输出的错误消息:
$ echo *(g:nosuchgroup:)
zsh: unknown group
它尝试列出 所属组所拥有的文件nosuchgroup
,这里是一个不存在的组。
该compaudit
函数在检查组件的权限和所有权时确实会执行此类操作$fpath
。
例如,对于 Debian 衍生品(如 Ubuntu),它在某一时刻扩展了全局${^_i_ulwdirs}(Nf:g+ws:^g:staff:,f:o+w:,^u0)
。
基于 Debian 的系统通常有一个staff
组,但如果您的系统/etc/group
已损坏并且没有组,您会收到该错误消息。
staff
如果我在 Linux Mint 18.3 系统(基于 Ubuntu 16.04)上将组重命名为其他名称,我会收到完全相同的错误消息。
如果getent group staff
没有返回任何内容,则确认该staff
组丢失并且您的恢复没有正常工作。