当 Firefox 启动时,它会在用户设置目录中创建两个文件:places.sqlite-shm和places.sqlite-wal并在退出时删除它们。
只是为了实验,我将这些文件的权限设置为只有 root 可以读取/写入它们。但是当我关闭 Firefox 时,这些文件就被删除了!这怎么可能?Firefox 不是以 root 权限运行的...
不要问我为什么这样做,我只是好奇
答案1
对目录具有写权限的用户可以删除该目录内的任何文件,除非该目录设置了“粘性”位(通常在 上设置/tmp
)。
此外,目录的所有者可以删除该目录内的任何文件,无论粘滞位或其他权限如何。
在目录上设置的“粘性”位有时被称为“限制删除标志”。
如果您想阻止用户删除这些文件,请设置父目录的粘滞位:
chmod +t some-directory-name
此后,您还需要更改目录的所有权(您需要以 root 身份执行此操作):
sudo chown root some-directory-name
您需要确保您的用户仍然可以写入该目录,如果失去所有权导致您的用户没有写权限,您可以授予“其他人”写权限:
sudo chmod o+rwx some-directory-name
或者您可以确保您的团队有访问权限:
sudo chgrp yourgroup some-directory-name
sudo chmod g+rwx some-directory-name
(组所有权不足以让您删除根拥有的文件。)
祝您冒险顺利,无论它是什么。
答案2
要删除文件,您只需要拥有该文件所在文件夹的写入和执行权限。文件本身的权限无关紧要。
答案3
因为您可以根据目录的权限删除目录内的文件。
http://www.tuxfiles.org/linuxhelp/filepermissions.html
读取权限。在常规文件上,读取权限位表示可以打开和读取该文件。在目录中,读取权限意味着您可以列出目录的内容。
写入权限。对于普通文件,这意味着您可以修改文件,也就是向文件写入新数据。对于目录,写权限意味着您可以在目录中添加、删除和重命名文件。这意味着,如果文件具有写权限位,则您可以修改文件的内容,但只有在文件目录的权限允许您这样做时,您才可以重命名或删除文件。
执行权限。对于常规文件,这意味着您可以将文件作为程序或 shell 脚本执行。对于目录,执行权限(也称为“搜索位”)允许您访问目录中的文件并进入目录,例如使用 cd 命令。但是,请注意,虽然执行位允许您进入目录,但您不能列出其内容,除非您还具有该目录的读取权限。