嘗試在刪除一些我不再需要的伺服器並刪除已刪除的軟體包的使用者和群組後安裝軟體包。去獲取並安裝新包,並收到以下錯誤。
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 安裝上下文之外運行它時,二進位檔案會拋出相同的錯誤。
所以然後我剛剛添加了用戶木偶,我可以再次下載軟體包,但我試圖從我的開發系統中刪除任何無關的元素,所以就我而言,這並不是一個解決方案,因為它有效。
據我所知,statoverride 告訴套件管理器將某些東西安裝到某個路徑,並與 setuid 標誌混淆,因此,它可能會透過安裝由某個人共同擁有的程式來開啟一堆安全漏洞。使用者和群組。當使用者被刪除時,是否有原因 dpkg-statoverride 沒有隨系統的其餘部分更新?有沒有辦法繞過這個問題,這樣我就不必每次要安裝軟體包時都執行 :adduser -> install -> deluser: ?
答案1
你可以試試這個:
sudo sed -i '/puppet/d' /var/lib/dpkg/statoverride
應從 statoverride 中刪除使用者並授予您再次安裝的權限