44

I have a problem copying files to a directory on Ubuntu 12.04. I create a directory in the home directory so that the path where I want to copy to is:

/home/sixven/camp_sms/inputs

But when ini run the following command in the terminal to create a sample file as follows:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

I can not copy files directly in that directory. How can I assign permissions with the chown & chmod commands to copy the files?

I do not know which user and group to use.

  • How did you create the directory? Why is it in /home/sixven? Why isn't it in your home directory? – terdon Mar 12 '14 at 16:06
  • 2
    From what you have copy-pasted, you are running touch as user francisco-vergara, but your directory is in /home/sixven is that really the home of user francisco-vergera or does it belong to a sixven user ? You should clarify what you want to do exactly. Write in another user's home ? Share that directory among a group ? – Leiaz Mar 12 '14 at 16:15
64

First of all you have to know that the default permission of directories in Ubuntu is 644 which means you can't create a file in a directory you are not the owner.

you are trying as user:francisco-vergara to create a file in a directory /home/sixven/camp_sms/inputs which is owned by user:sixven.

So how to solve this:

  1. You can either change the permission of the directory and enable others to create files inside.

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    This command will change the permission of the directory recursively and enable all other users to create/modify and delete files and directories inside.

  2. You can change the owner ship of this directory and make user:francisco-vergara as the owner

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    But like this the user:sixven can't write in this folder again and thus you may moving in a circular infinite loop.

So i advise you to use Option 1.

Or if this directory will be accessed by both users you can do the following trick:

change ownership of the directory to user:francisco-vergara and keep the group owner group:sixven.

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

Like that both users can still use the directory.

But as I said you before It's easiest and more efficient to use option 1.

| improve this answer | |
12

To change the file ownership, do this as root:

chown -R user:user /home/sixven

If you decide to go the chmod way:

If you know that the user is part of the group of the file

chmod -R g+rw /home/sixven

Otherwise:

chmod -R o+rw /home/sixven

But this way is not too secure.

| improve this answer | |
1

The default UMASK 022 (in Ubuntu ), so the permissions for /home/username becomes 755. and you logged in as user francisco-vergara and trying to creating files in user sixyen Home: i.e. /home/sixven. it does not have write permission to Other users Only User/Group of sixven has write access.

if you want write access in that directory, then you need to be part of Group sixven using usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven (don't use it's bad practice ).

| improve this answer | |
  • Aren't you rushing things a little? We still don't know the OP's situation. – guntbert Mar 12 '14 at 17:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.