Answers:
确保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
如果其中一个是真的,这个问题是一个好的开始。
chown
可以在目标文件系统中的文件上成功运行(命令或编程功能)?目标文件系统是什么类型的?你确定你的uid不是0吗?
cat /bin/cp > /tmp/cp; chmod +x /tmp/cp
,然后尝试使用/ tmp / cp -a命令复制文件,看看是否仍然存在奇怪的行为。