我使用的是 Ubuntu 16LTS,并使用 apt 执行了常规升级。升级失败openssh-server
,apt 抱怨无法升级,因为它无法备份/usr/sbin/sshd
我删除了openssh-server
它并尝试重新安装。没有成功,apt 返回相同的消息。我openssh-server
再次删除它。
当我尝试手动更改或删除时,/usr/sbin/sshd
我收到“操作不允许”的消息。我尝试删除该属性chattr -a -i /usr/sbin/sshd
,但它一直响应操作不允许。另一个烦人的问题是它lsattr
没有返回任何信息。
我如何强制删除或移动该/usr/sbin/sshd
文件?
答案1
以下命令将显示哪个进程正在处理lock
特定文件:
sudo lsof /usr/sbin/sshd
如果结果lsof
给您带来sshd
服务,那么您应该在执行升级之前停止该服务。
假设您尝试sshd
在它仍在运行时将其删除,您可以sshd
先尝试将其停止。
使用:
sudo /etc/init.d/ssh stop
或者
sudo service ssh stop
服务停止后,您可以尝试通过升级apt
或手动删除该文件夹。
答案2
我自己找到了解决方案。显然 lsattr 和 chattr 文件已损坏。也许我被黑客入侵了。当我用正确的版本替换这两个文件时,我可以删除 -i 标志,并且可以删除 sshd。
感谢 Yaron 的帮助。