单个文件的 000 权限效果不佳

par*_*tho 11 permissions

我已000为编写此代码的单个文件设置了权限:

sudo chmod 000 ./Desktop/*.gif
Run Code Online (Sandbox Code Playgroud)

但是这个文件仍然是可删除和可重命名的(但不可读)。

虽然这段代码:

sudo chmod 000 ./Desktop/Directory_name
Run Code Online (Sandbox Code Playgroud)

使目录不可访问(读、写、执行保护)。

怎么了 ?

mur*_*uru 25

怎么了?

没有。从文件中删除所有权限不会阻止删除或重命名 - 这些权限由包含目录的权限控制(Desktop在本例中为 )。如果要防止删除或重命名,请从目录中删除写入权限:

chmod a-w Desktop
Run Code Online (Sandbox Code Playgroud)

或者使文件不可变:

sudo chattr +i Desktop/*.gif
Run Code Online (Sandbox Code Playgroud)

rm 会询问您是否要删除不可变文件,但它不能:

$ rm foo
rm: remove write-protected regular file ‘foo’? y
rm: cannot remove ‘foo’: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

  • 虽然人们通常不会因为没有被列入任何电话簿而死亡。 (6认同)
  • 现实生活中的类比:您无需朝某人的头部开枪即可将其从电话簿中删除。 (4认同)