安装新版本前无法创建“./usr/bin/ssh”的备份链接 不允许操作
Posted
技术标签:
【中文标题】安装新版本前无法创建“./usr/bin/ssh”的备份链接 不允许操作【英文标题】:unable to make backup link of './usr/bin/ssh' before installing new version operation not permitted 【发布时间】:2021-06-24 19:07:48 【问题描述】:最近我的实验室 ubuntu 服务器遇到了一个棘手的问题。我想重新安装我的 openssh 服务器,所以我运行命令
sudo apt-get install openssh-client
sudo apt-get install openssh-server
但是,命令失败并显示反馈
Unpacking replacement openssh-server ...
dpkg: error processing /var/cache/apt/archives/openssh-server_1%3a7.6p1-4ubuntu0.3_amd64.deb (--unpack):
unable to make backup link of `./usr/sbin/sshd' before installing new version: Operation not permitted
根据一种可行的解决方案(https://www.howtoforge.com/debian-ubuntu-unable-to-make-backup-link-of-usr-bin-sshd-before-installing-new-version-operation-not-permitted),它说我们应该使用 chattr 和 lsattr 命令检查我的/usr/bin/ssh
和/usr/bin/sshd
的属性。但是当我跑的时候
sudo lsattr /usr/bin/ssh
sudo chattr /usr/bin/ssh
,它没有任何输出。似乎我的 lsattr/chattr 命令是错误的,因为我检查了 lsattr 和 chattr 的大小,在我的其他 ubuntu 服务器中有 10576 b 和 10592 b。但是在这个服务器中,只有 10 个 b。如果我使用less -SN lsattr/chattr
,它们都会显示:
#!/bin/sh
/usr/bin/chattr (END)
#!/bin/sh
/usr/bin/lsattr (END)
如果我想用从其他服务器复制的那些 chattr 和 lsattr 替换(用 root),它会显示 Operation not permitted
所以任何人都可以帮助我解决这个 openssh 问题或重新安装 chattr/lsattr
?
【问题讨论】:
【参考方案1】:我最近遇到了和你一样的问题。您之前的所有操作都是正确的。但是在替换lsattr
和chattr
之前,需要使用复制的chattr
修改/usr/bin/lsattr
和/usr/bin/chattr
的属性。
sudo ./chattr -a -i /usr/bin/chattr
sudo ./chattr -a -i /usr/bin/lsattr
然后可以进行替换操作,可以修改/usr/sbin/sshd
的属性。
sudo mv ./lsattr /usr/bin/lsattr
sudo mv ./chattr /usr/bin/chattr
sudo chattr -a -i /usr/sbin/sshd
然后你可以尝试安装openssh
.
为了安全起见,最后将ai
属性添加到替换的lsattr
和chattr
。
sudo chattr +a +i /usr/bin/chattr
sudo chattr +a +i /usr/bin/lsattr
【讨论】:
好的,非常感谢。其实我在其他路径重新安装chattr/lasttr,然后使用新安装的chattr/lasttr 删除旧的chattr/lasttr,然后将新安装的chattr/lasttr 复制到/usr/bin,并使用它们来检查/删除ssh ,然后我可以安装 ssh。 希望这些可以帮助遇到同样问题的人。以上是关于安装新版本前无法创建“./usr/bin/ssh”的备份链接 不允许操作的主要内容,如果未能解决你的问题,请参考以下文章
误删:[root@m01 scripts]# rm -f /usr/bin/ssh-copy-id