近來在一個雲主機上操作docker pull,報錯如下:
failed to register layer: Error processing tar file(exit status 1): open /etc/init.d/hwclock.sh: permission denied
或者:
failed to register layer: Error processing tar file(exit status 1): open /etc/init.d/.legacy-bootordering: permission denied
當前用戶就是root,怎么會沒有權限呢?
查看服務器版本:
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
而我所嘗試的操作:
rm -rf /var/lib/docker/network/files/* && service docker restart #【無效】 reboot # 【無效】 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config && reboot #【無效,且selinux本身就關了】 docker system prune -a #【無效,且這命令慎用】
折騰了好久都不知道為何,外網上也搜不到相應的問題,有的是說被殺毒軟件給占用了文件,但我這雲主機上沒有殺軟。
最后嘗試yum update更新,看到一條報錯
cp: cannot create regular file '/etc/grub.d/00_tuned': Permission denied
這個我就犯迷糊了,怎么連這里的文件都沒權限,我進入其目錄,發現可以cp,可以mv,但是不能刪除、不能覆蓋。用lsattr命令也沒查看到什么。
而在我reboot后,再連接進去的前一段時間,我可以刪除文件,而稍等一會就不可以刪除文件了。
這種感覺,就是背后有進程在限制我的權限。然后想起這個雲主機是騰訊雲,首先就鎖定了該服務器上安裝的雲鎖。
暫時的解決方法如下:
(別怪我狠心刪除雲鎖,誰讓特么的連docker pull都限制)
cp /etc/rc.local{,.bak} echo '#!/bin/bash' >/etc/rc.local rm -rf /usr/local/qcloud rm -rf /usr/local/yunsuo_agent chattr +i /usr/local/qcloud chattr +i /usr/local/yunsuo_agent
把上述命令保存到一個sh文件,並chmod +x,然后reboot后迅速連接進去執行該文件即可。
