当我从非 root 用户调用时cp -a 1 2
,所有权被保留,尽管文件1
属于另一个用户。我的理解是,这是不可能的。
到底是怎么回事?
答案1
确保cp
二进制文件没有设置用户标识位设置...
$ 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
如果其中一项属实,这个问题是一个好的开始。