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

7,687

Solution 1

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

Solution 2

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

Share:
7,687

Related videos on Youtube

The Chosen One
Author by

The Chosen One

Updated on September 18, 2022

Comments

  • The Chosen One
    The Chosen One over 1 year

    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!

  • The Chosen One
    The Chosen One over 11 years
    I think umask works only on newly created, not copied files
  • Ярослав Рахматуллин
    Ярослав Рахматуллин over 11 years
    copied files are new.
  • zb'
    zb' over 11 years
    @ЯрославРахматуллин not always pastebin.com/QtcMk8Q4
  • Ярослав Рахматуллин
    Ярослав Рахматуллин over 11 years
    Ok, if copied files aren't new, then what are they? ... As I have shown umask can be used to to affect new files that cp makes. Perhaps some versions of cp don't support this, but rsync could probably (haven't checked) be used on those systems to do the same thing. Anyway, this isn't what the question was about and the answer is incorrect.
  • John Siu
    John Siu over 11 years
    cp works, but not mv.
  • The Chosen One
    The Chosen One over 11 years
    I edited /etc/fstab and added acl attribute on the partition which contains folders X and Y. What setfacl command should I use to solve my problem?