Ubuntu: copying files from one user to another in a single machine



Question:

How to copy any files or directories from one user to another user in a same machine via terminal?

Suppose there is one file test.txt in home directory of USER1. I need to copy that file to the home directory of USER2 in my machine. How can I do it via terminal?


Solution:1

Assuming that you have sudo privileges the following command will do.

sudo cp /home/USER1/FNAME /home/USER2/FNAME && sudo chown USER2:USER2 /home/USER2/FNAME

Will copy the file from USER1 to USER2, and then change the owner of the copy in /home/USER2 to USER2

If you do not have sudo privileges, then the two users will need to ensure that you have read permissions on the USER1 directory, and write access on the USER2 directory. If you have these accesses, you can enter the command:

cp /home/USER1/FNAME /home/USER2/FNAME

This will copy the file in question, but USER2 may not be able to manipulate the file until they have appropriate permissions.


Solution:2

if you dont have sudo privileges but you can login with the two users then you can use scp with localhost :

scp file1 user2@localhost:/home/user2/  


Solution:3

As USER1:

cp [filename] /tmp  chmod 777 /tmp/[filename]  

As USER2:

cp /tmp/[filename] .  

As USER1:

rm /tmp/[filename]  


Solution:4

Assume you either do not have ssh installed, or cannot do do not want to share keys/secrets.

Suppose user1 is in group1, and user2 is in group2, and both user1 != user2 and group1 != group2.

Create a shared group, group3s.

addgrp group3  

Add both user1 and user2 to group3s.

Create a directory in a mutually accessible place, where one user owns, but has group ownership of group3s.

#as user1,  mkdir $place/shared && chown user1.group3s $place/shared && chmod 770 $place/shared;  #as user1 or user2,  cp $file $place/shared && chgrp $place/shared/$file && chmod 660 $place/shared/$file  

But, suppose you cannot create the new, shared group, and place both users in that group?

Create the directory and give it 770 permissions,

mkdir $place/shared && chown user1.group1 $place/shared && chmod 770 $place/shared;  

Then, as root/admin, change the group ownership to the other user's group,

sudo bash  chgrp group2 $place/shared && chmod g+s $place/shared  

The command chmod g+s sets the setgid bit so that files placed into the directory have the group ownership set to group2.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »