cp -a从非root用户保留所有权


1

当我cp -a 1 2从非root用户调用时,尽管该文件1属于另一个用户,但仍保留所有权。我的理解是这不应该是可能的。

到底是怎么回事?

Answers:


0

确保cp二进制文件没有设置setuid位...

$ ls -l /bin/cp /tmp/badcp1
-rwxr-xr-x 1 root root 103K Jul  1 11:59 /bin/cp
-rwsr-xr-x 1 root root 103K Jul  1 11:59 /tmp/badcp1
   ^

......并且它没有分配任何特殊功能:

$ getcap /tmp/badcp2 
/tmp/badcp2 = cap_chown,cap_fowner+eip

如果其中一个是真的,这个问题是一个好的开始。


两种情况都没有。
Matt Joiner

有趣。您是否chown可以在目标文件系统中的文件上成功运行(命令或编程功能)?目标文件系统什么类型的?你确定你的uid不是0吗?
grawity 2011年

@Matt:另外,即使你没有getcap,操作系统功能仍然存在。攻击者可能带来了自己的libcap2-bin副本。一个很好的测试是cat /bin/cp > /tmp/cp; chmod +x /tmp/cp,然后尝试使用/ tmp / cp -a命令复制文件,看看是否仍然存在奇怪的行为。
grawity 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.