Subject: bug#31675: Existing directories and files permissions are not being kept intact

From: Pádraig Brady <[email-masked]>
Date: Sun, 3 Jun 2018 15:20:11 -0700

tag 31675 notabug
close 31675
stop

On 31/05/18 20:50, Gunjan Gupta wrote:
> Hi,
> 
> Suppose I have the following directory structure
> 
> /
> | - destination (mode=0755)
>      | - dir (mode=0755)
>           | - file.txt (mode=0644)
> | - source
>      | - dir (mode=0755)
>           | - file.txt (mode=0644)
> 
> My user has a umask of 0077. Now if I run the following cp command
> 
> cp -aR --no-preserve=mode /source/* /destination
> 
> I think the mode of destination/dir should stay as 0755 but it changes to
> 0700. Is this expected?
> 
> I am using coreutils 8.26-3 on Debian Stretch

This is a little surprising as cp didn't create /destination/dir in this case.
However if it did create that dir, then the mode would be expected.
So cp is keeping the destination consistent whether it previously existed or not.

cheers,
Pádraig