没来过这里太多。主要是 Stackoverflow。无论如何,我有一个无法删除的文件。
我尝试sudo rm files.db
并得到了
Operation not permitted
做过sudo chown me: files.db
然后sudo chmod 777 files.db
再次尝试sudo rm files.db
并得到相同的结果。
ls -l
产生:
-rwx------ 1 me staff 34177024 Jun 6 23:58 files.db
我本来希望看到:
-rwxrwxrwx 1 me staff 34177024 Jun 6 23:58 files.db
尝试过sudo chflags noschg files.db
然后sudo chmod 777 files.db
然后仍然得到:
-rwx------ 1 me staff 34177024 Jun 6 23:58 files.db
我缺少什么?
更新:
尝试su user rm -rf files.db
输入我的密码并得到:
su: Sorry
我用这个驱动器进行时间机器备份。
难道就没有办法强制删除吗?
另一个更新:
不确定这是如何工作的,但尝试过ls -i
并得到:
5482053549 files.db
然后find . -inum 5482053549 -delete
得到:
find: -delete: unlink(./files.db): Operation not permitted
还尝试find . -inum 5482053549 -exec rm {} \;
并得到:
rm: ./files.db: Operation not permitted
啊。
最后更新:
今天早上我做了以下事情:chown me folder
然后chmod 777 folder
。然后我就可以删除该文件了。
答案1
您是否也尝试过chflags nouchg
,或者您是否检查过某些父目录是否有uchg
orschg
标志?
$ mkdir 1; touch 1/2; chflags uchg 1; sudo rm -f 1/2
rm: 1/2: Operation not permitted
$ chflags nouchg 1; rm 1/2
$
如果该目录没有写权限,则错误消息通常Permission denied
不是Operation not permitted
:
$ sudo mkdir 3; sudo touch 3/4; sudo chown $USER 3/4; rm 3/4
rm: 3/4: Permission denied
sudo rm
即使delete
或delete_child
操作被拒绝,通常也能正常工作:
$ touch 4; chmod +a 'everyone deny delete' 4; rm 4
rm: 4: Permission denied
$ mkdir 5; touch 5/6; chmod +a 'everyone deny delete_child' 5; rm 5/6
rm: 5/6: Permission denied
$ ls -lde 4 5
-rw-r--r--+ 1 lauri staff 0 Jun 7 12:44 4
0: group:everyone deny delete
drwxr-xr-x+ 3 lauri staff 102 Jun 7 12:44 5
0: group:everyone deny delete_child
$ sudo rm 4 5/6
$