为什么复制文件在Linux中有不同的权限?

use*_*100 6 linux cp

我在Linux中以root用户身份登录.我有一个777权限的文件.我将文件复制到同一目录中cp.

cp settings.php settings_copy.php
Run Code Online (Sandbox Code Playgroud)

但是,复制的文件具有不同的文件权限.

[root@localhost default]# ls -l setting*
-rwxr-xr-x. 1 root root 29105 Apr 26 11:48 settings_copy.php
-rwxrwxrwx. 1 root root 29105 Apr 26 09:48 settings.php
Run Code Online (Sandbox Code Playgroud)

这是正常的吗?如何确保复制的文件具有相同的权限?我相信这是任何操作系统中复制命令的默认行为.

P.P*_*.P. 10

使用该-p选项保留权限:

cp -p settings.php settings_copy.php
Run Code Online (Sandbox Code Playgroud)

复制文件时,您正在创建新文件.因此,它的(新文件)权限取决于您通过命令更改的当前文件创建掩码umask.阅读man umask更多信息.