How to automatically change permissions for files copied to a directory?

I would like to automate changing permissions for files copied to a directory. For example, any files copied to folder X should have mode 755, and any files copied to folder Y should have mode 700.

Please advise, thank you!


You can use umask for this. to figure out the mode do this:

  7777
-umask
= new permissions

for example (linux):

 777
-022
 755

umask is 022, permissions will be 755 for folders and 644 for files. Put something like umask 0027 in your ~/.profile to have it load each time you log in.

UPDATE (due to a skeptic comment):

$ umask 
0077

$ ll
total 0
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 00
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 01
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 02
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov  9 20:26 03

$ rm -rf ../copies/*; \
  /bin/cp --no-preserve=mode,ownership * ../copies/; ll ../copies/ 
total 0
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 00
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 01
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 02
-rw------- 1 jaroslav jaroslav 0 Nov  9 20:33 03

I don't believe it possible to do this on a directory-by-directory basis using standard unix permissions. ACLs, however, can do this.