Попытался установить пакет после удаления некоторых серверов, которые мне больше не нужны, и удаления пользователей и групп удаленного программного пакета. Пошел за загрузкой и установкой нового пакета и получил следующую ошибку.
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)
Таким образом, / usr / bin / dpkg-statoverride имеет возможность удалить путь, но двоичный файл выдает ту же ошибку, когда я пытаюсь запустить его вне всего контекста установки apt-get.
Итак, я просто добавил пользователя puppet и могу снова загружать пакеты, но я пытаюсь удалить все посторонние элементы из моей системы разработки, так что, насколько я понимаю, это не так. решение только потому, что оно работает.
Насколько я могу судить, statoverride указывает менеджеру пакетов установить определенные вещи по определенному пути и портит флаг setuid, поэтому потенциально это может открыть кучу дыр в безопасности, устанавливая программы совместно. принадлежит неиспользованному пользователю и группе. Существует ли причина, по которой dpkg-statoverride не обновляется с остальной системой при удалении пользователя? И есть ли способ обойти это, чтобы мне не приходилось: adduser -> install -> deluser: каждый раз, когда я хочу установить пакет?
Можно попробовать это:
sudo sed -i '/puppet/d' /var/lib/dpkg/statoverride
Должен удалить пользователя из statoverride и предоставить Вам доступ для установки снова