Mr *_*ose 6 permissions directory rename rm files
我刚刚意识到我可以移动一个我不拥有且没有写权限的文件。我对该目录有写权限,所以我猜这就是我可以移动它的原因,但在这种情况下,是否有保护源文件的方法?
该文件的权限如下;
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
Run Code Online (Sandbox Code Playgroud)
最后一个对我来说是一个很大的惊喜。如何删除我无权访问的文件。显然我遗漏了一些东西。
jw0*_*013 13
就权限而言,移动 ( mv) 本质上是一个保留属性的副本,然后是删除 ( rm)。1 取消链接或删除文件意味着从其包含目录中删除其目录条目。您正在写入目录,而不是文件本身,因此不需要对该文件的写权限。
大多数系统支持目录 ( chmod +t dir/)上粘滞位的语义,设置后仅允许文件所有者删除该目录中的文件。设置粘滞位cgi-bin/意味着moorc不能再取消链接cgi-bin属于voyager.
1 通常,当目标与源在同一文件系统中时,没有物理副本。相反,对目标目录中的文件建立了一个新链接,但同样的一般概念仍然认为文件本身不会改变。
如需更多阅读,请查看本文解释文件和目录权限(包括粘滞位)如何影响系统调用。 后记
我碰到了一个有趣的比喻在我真的很喜欢跑评论由@JorgWMittag在这个网站的其他问题。
摘抄
它与实际的“真实”目录的工作方式相同,这就是为什么它被称为“目录”,而不是例如“文件夹”,后者的行为会大不相同。如果我想从我的电话簿中删除某人,我不会去她家杀了她,我只是拿笔在她的号码上划掉。IOW:我需要对目录的写访问权限,但不能访问她。
如果你试图扩展它,这个类比确实会有点不准确,因为没有有效的方法来描述这样一种情况:一旦指向它的目录条目的数量下降到零并且它的所有打开,文件系统实现就会自动释放文件的磁盘块手柄关闭。