我正在将一台机器从 RHEL 4 迁移到 5。我们没有进行实际升级,而是创建了一个新的 VM(两台机器都在云中),我正在两者之间复制数据。
我遇到了以下文件,我需要将其从新机器中删除,但无法删除,即使以 root 身份运行:
-rw------- 1 2003 2003 219 jan 11 14:22 .bash_history
Run Code Online (Sandbox Code Playgroud)
该文件位于 /home/USER/ 中,其中 USER 是构建机器的人的帐户。他在旧机器上没有帐户,所以我试图删除他的主文件夹,以便新机器与旧机器相符,但出现以下错误:
rm: ne peut enlever `.bash_history': Opération non permise
Run Code Online (Sandbox Code Playgroud)
(法文翻译:不能删除XXX,不允许操作)
我曾尝试使用以下命令,但这没有任何区别:
chattr -i .bash_history
Run Code Online (Sandbox Code Playgroud)
是创建 ID 为 2003 的用户的唯一选择,还是有其他解决方法?
我试过使用rm -f
,我得到了同样的错误。我chmod 777
首先使用相同类型的错误。
我已经能够访问chown
包含我要删除的文件的文件夹,所以它是:
drwx------ 2 root root 1024 jan 24 15:58 USER
Run Code Online (Sandbox Code Playgroud)
lsattr
按照 Angus 的建议运行命令给出了以下输出:
-----a------- USER/.bash_history
------------- USER/..
------------- USER/.
Run Code Online (Sandbox Code Playgroud)
该文件被标记为仅附加 - 在使用更改此标志时,chattr -a .bash_history
我能够删除该文件。
在 samba 共享上,我在 SMB 网络共享上有一个 .DS_Store 文件,这造成了严重破坏。即使以 root 身份,我也无法删除或 chmod 它。
-rwx------ 1 bob acme\Domain Users 6148 Apr 24 09:11 .DS_Store*
sudo chmod 777 .DS_Store
chmod: Unable to change file mode on .DS_Store: Permission denied
sudo rm -rf .DS_Store
rm: .DS_Store: Permission denied
sudo mv .DS_Store ../
mv: rename .DS_Store to ../.DS_Store: Permission denied
Run Code Online (Sandbox Code Playgroud)
奇怪的是输出如何ls
显示这是一个可执行文件(注意最后的 *)
如果我查看桌面上的类似文件,它具有这些权限。
-rw-r--r--@ 1 bob acme\Domain Users 16388 May 20 15:10 .DS_Store
stat .DS_Store
771751940 3458764513820547522 -rwx------ 1 bob acme\Domain Users 0 6148 …
Run Code Online (Sandbox Code Playgroud)