为什么我不能在没有 sudo 的情况下删除或移动这些文件?

Byt*_*der 6 filesystem permissions files rm acl

我以前曾经file-roller将 ISO 映像提取到我的桌面,但现在我不能再“像我自己一样”删除或移动/重命名这些文件,只能使用sudo. 不过,更改权限 ( chmod) 或内容是可能的。

bytecommander@BC-AlkaliMetal:~/Desktop$ ll AUTORUN.INF 
-rwxr-xr-x 1 bytecommander bytecommander 132 Jul 21  2005 AUTORUN.INF*

bytecommander@BC-AlkaliMetal:~/Desktop$ chmod 777 AUTORUN.INF 

bytecommander@BC-AlkaliMetal:~/Desktop$ echo "Something useless" > AUTORUN.INF

bytecommander@BC-AlkaliMetal:~/Desktop$ cat AUTORUN.INF 
Something useless

bytecommander@BC-AlkaliMetal:~/Desktop$ ll AUTORUN.INF 
-rwxrwxrwx 1 bytecommander bytecommander 18 Sep 22 21:13 AUTORUN.INF*

bytecommander@BC-AlkaliMetal:~/Desktop$ rm AUTORUN.INF 
rm: cannot remove 'AUTORUN.INF': Permission denied
Run Code Online (Sandbox Code Playgroud)

但是,我想了解究竟是什么让我回到了这里。

我的桌面目录位于 ext4 分区上。输出mount

/dev/sdb5 on / type ext4 (rw,noatime,nodiratime,errors=remount-ro,data=ordered)
Run Code Online (Sandbox Code Playgroud)

我找不到任何可疑的权限、ACL、扩展属性或我所知道的任何其他内容:

bytecommander@BC-AlkaliMetal:~/Desktop$ stat AUTORUN.INF 
  File: 'AUTORUN.INF'
  Size: 18          Blocks: 8          IO Block: 4096   regular file
Device: 815h/2069d  Inode: 405817      Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/bytecommander)   Gid: ( 1000/bytecommander)
Access: 2016-09-22 18:18:36.569110000 +0200
Modify: 2016-09-22 21:13:26.821382722 +0200
Change: 2016-09-22 21:26:16.653296674 +0200
 Birth: -

bytecommander@BC-AlkaliMetal:~/Desktop$ getfacl AUTORUN.INF 
# file: AUTORUN.INF
# owner: bytecommander
# group: bytecommander
user::rwx
group::rwx
other::rwx

bytecommander@BC-AlkaliMetal:~/Desktop$ lsattr AUTORUN.INF 
-------------e-- AUTORUN.INF
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

ste*_*ver 11

删除文件需要在其父目录中具有写权限 - 因此可能会失败

  • ~/Desktop/ 有不正确的权限位
  • ~/Desktop/ 具有正确的权限,但已被其他人拥有,例如 root

根据需要进行检查和调整。