![cp -a 保留非 root 用户的所有权](https://linux22.com/image/1281498/cp%20-a%20%E4%BF%9D%E7%95%99%E9%9D%9E%20root%20%E7%94%A8%E6%88%B7%E7%9A%84%E6%89%80%E6%9C%89%E6%9D%83.png)
当我从非 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
如果其中一项属实,这个问题是一个好的开始。