如何从 dpkg-statoverride 文件中删除用户?

bla*_*cat 4 apt dpkg puppet 14.04

在删除一些我不再需要的服务器并删除已删除软件包的用户和组后尝试安装软件包。去获取并安装一个新包,并得到以下错误。

user@localhost~$ sudo apt-get install any-package

... package installation output omitted for brevity ...

dpkg: unrecoverable fatal error, aborting:
syntax error: unknown user 'puppet' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)
Run Code Online (Sandbox Code Playgroud)

所以 /usr/bin/dpkg-statoverride 有一个删除路径的选项,但是当我尝试在整个 apt-get 安装上下文之外运行它时,二进制文件会抛出相同的错误。

然后我只是添加了用户傀儡,我可以再次下载包,但我试图从我的开发系统中删除任何无关的元素,所以就我而言,这不是一个解决方案,因为它有效.

据我所知,statoverride 告诉包管理器将某些东西安装到某个路径,并弄乱了 setuid 标志,因此可能会通过安装由以下人员共同拥有的程序来打开一堆安全漏洞未使用的用户和组。当用户被删除时,dpkg-statoverride 是否有理由不随系统的其余部分更新?有没有办法规避这一点,这样我就不必 :adduser -> install -> deluser: 每次我想安装一个包?

Ele*_*ace 9

你可以试试这个:

sudo sed -i '/puppet/d' /var/lib/dpkg/statoverride
Run Code Online (Sandbox Code Playgroud)

应该从 statoverride 中删除用户并授予您再次安装的权限