保留权限开关不适用于 cp?

Ank*_*kit 3 permissions

使用“-p”开关从其他用户的目录复制文件应根据手册页保留权限。

我正在使用 -p 开关将 /etc/passwd 复制到我的主目录,但权限未保留如下:-

ijoin@stream:~$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1813 Sep 25 08:58 /etc/passwd
ijoin@stream:~$ cp --preserve /etc/passwd .
ijoin@stream:~$ ls -l passwd 
-rw-r--r-- 1 ijoin ijoin 1813 Sep 25 08:58 passwd
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

Ser*_*gey 5

您已登录ijohn并复制属于root. cp命令不能解决的Linux的安全设备-您的用户不允许创建所拥有的文件root或文件的更改ownersip来root。这样做将是一个安全问题。

如果您需要复制其他用户拥有的文件,请使用sudo

sudo cp --preserve /etc/passwd
Run Code Online (Sandbox Code Playgroud)

这是我在linuxquestions.org 上找到的一个很好的解释:

-p 参数适用于所有用户在系统上的用户能力的约束下。通常非 root 用户将能够保留他们拥有的文件的所有权,并且由特定非 root 用户所属的组拥有。他们不能保留其他用户拥有的文件的所有权(尽管根据 suid、guid 和粘性位,可能有解决此问题的方法)。root 可以保留不同用户拥有的文件的所有权,因为 root 拥有完整的系统特权。但是 joe_schmoe 不能保留 root 拥有的文件或 billy 拥有的文件的所有权等。取决于文件将复制到哪里,joe_schmoe 只能保留 joe_schmoe 拥有的文件的文件所有权,并且由 joe_schmoe 所属的组拥有。