我刚刚意识到我可以移动一个不属于我且没有写入权限的文件。我对该目录具有写权限,所以我猜测这就是我可以移动它的原因,但在这种情况下,是否有保护源文件的方法?
该文件的权限如下;
cgi-bin> ls -al
drwxrwxrwx 3 voyager endeavor 512 Feb 1 10:45 .
drwxrwxrwx 6 voyager endeavor 512 Feb 1 09:38 ..
-rwxr-xr-x 1 voyager endeavor 22374 Feb 1 10:45 webvoyage_link.cgi
cgi-bin> whoami
moorc
cgi-bin> groups
lrsn endeavor
cgi-bin> rm webvoyage_link.cgi
rm: webvoyage_link.cgi: override protection 755 (yes/no)? yes
最后一个对我来说是一个很大的惊喜。如何删除我无权访问的文件。显然我缺少一些东西。
答案1
就权限而言,移动 ( mv
) 本质上是保留属性的复制,然后是删除 ( )。 1 取消链接或删除文件意味着从其包含目录中删除其目录条目。您正在写入目录,而不是文件本身,因此文件不需要写权限。 rm
大多数系统支持目录粘滞位 ( chmod +t dir/
) 的语义,设置后仅允许文件所有者删除该目录中的文件。将粘性位设置为打开cgi-bin/
将意味着moorc
无法再取消链接cgi-bin
属于voyager
.
1 一般来说,当目标与源位于同一文件系统中时,不存在物理副本。相反,会对目标目录中的文件建立一个新链接,但相同的一般概念仍然认为文件本身不会更改。
如需更多阅读,请查看此文章解释了文件和目录权限(包括粘滞位)如何影响系统调用。 后记
我在一篇文章中遇到了一个我非常喜欢的有趣的类比评论经过@JorgWMittag关于本网站的另一个问题。
摘抄
它与实际的“现实生活”目录的工作方式相同,这就是为什么它被称为“目录”,而不是“文件夹”,例如,“文件夹”的行为会完全不同。如果我想从手机通讯录中删除某人,我不会去她家杀掉她,我只是拿笔划掉她的号码。 IOW:我需要对该目录的写访问权限,但无法访问她。
如果你尝试扩展它,这个类比确实有点不成立,因为没有有效的方法来描述一旦指向文件的目录条目数下降到零并且所有打开的文件系统实现自动释放文件的磁盘块的情况。手柄已关闭。