`cp` permission denied when copy a file owned by `root`

171,759

Solution 1

Well,

That would be because the way your current permissions are set, no one can move that file. ( Other than root, because root doesn't follow the same rules. )

You would need to either change the owner of the file (chown), OR add the other user to the group 'root' and chmod it so the group can execute on the directory, OR allow everyone else to execute the file.

So, a quick fix would be:

chmod -R o+rwx udp_folder2

That will give everyone the ability to read, write and execute on that directory.

Also... if you're attempting to copy 'udp_folder2' into the same directory that it is located now, you'll need the 'w' permission on that directory as well. For example:

/foo/udp_folder2 - you'll need 'w' on /foo to copy that directory in /foo

I'd suggest learning linux file permissions: Linux File Permission Tutorial

Solution 2

The directory has no x permission, so others (i.e., in this case any user) can use the directory to reach the files inside. The T means it is sticky (only the owner of a file can delete it). With both the x permission and the sticky bit, you would see a lowercase t; the uppercase T says “no access permission but sticky bit, which is an odd combination”.

Read up on Unix file/directory permissions. It isn't too hard, and you will need it.

Solution 3

You don't want to give everyone rwx on the directory because you'd create a security risk. And you wouldn't want to -R the chmod because that would write changes recursively.

Just chmod 755 "filename" and you're good.

Here's a break down of the numbers:

  • Read = 4
  • Write = 2
  • Execute = 1

Then you have 3 groups:

  • Owner.
  • Those who belong to the Group.
  • Everyone else.

So, if you want to give the owner rwx, those who belong to the group rw, and everyone else rw you just add the permissions: rwx = 7, because r+w+x is 4+2+1 and rw = 6 because r+w = 4+2.

Share:
171,759

Related videos on Youtube

user3366906
Author by

user3366906

Updated on September 18, 2022

Comments

  • user3366906
    user3366906 almost 2 years

    I have a folder udp_folder2

    d------r-T 41 root           root     4096 Apr 26 21:17 udp_folder2
    

    when I'm with user other than root, I can't cp -r it into a new folder it says: Permission denied

    why? and how can I copy it with a user other than root

  • user3366906
    user3366906 about 11 years
    I think copy is just r permission, obviously there is r permission for other user, you see, there is a r
  • user3366906
    user3366906 about 11 years
    I mean in d------r-T , the r is for other user
  • Swiss
    Swiss about 11 years
    You also need execute permission to copy a directory. I'm not sure what T is offhand.
  • Tillman32
    Tillman32 about 11 years
    You'll need the 'w' on the directory you're trying to copy to... for example, if you're copying /home/foo to /etc/foo you'll need the 'w' permission in /etc/
  • Tillman32
    Tillman32 about 11 years
    Hence my term 'So, a quick fix would be' and I send him a link to learn more about permissions. He didn't mention a concern for security or anything of the sort. He just stated that he wants to copy the directory.
  • Tillman32
    Tillman32 about 11 years
    Also, we he'll need the 'w' permission on the directory he's attempting to copy it into.
  • user3366906
    user3366906 about 11 years
    I have that w permission in /etc/ of your case
  • Tillman32
    Tillman32 about 11 years
    @Swiss - The 'T' is a sticky bit, which is a 'special' permission. Learn all about sticky bits here: en.wikipedia.org/wiki/Sticky_bit
  • pullsumo
    pullsumo about 11 years
    Don't be a hater Tillman.
  • Paulo Carvalho
    Paulo Carvalho over 3 years
    Best answer for me. Complete, with simples explanations, example and with the plus of explaining potential risks with misuse of the permission flags.