Создать файл в папке: разрешение запрещено


38

У меня проблема с копированием файлов в каталог на Ubuntu 12.04. Я создаю каталог в домашнем каталоге, чтобы путь, в который я хочу скопировать, был:

/home/sixven/camp_sms/inputs

Но когда ini запускает следующую команду в терминале, чтобы создать образец файла следующим образом:

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

Я не могу копировать файлы прямо в этот каталог. Как назначить разрешения с помощью команд chown& chmodдля копирования файлов?

Я не знаю, какого пользователя и группу использовать.


Как вы создали каталог? Почему это в /home/sixven? Почему его нет в вашем домашнем каталоге?
Terdon

2
Исходя из того, что вы скопировали, вы работаете на сенсорном компьютере как пользователь francisco-vergara, но ваш каталог находится в /home/sixvenтом, что он действительно является домом пользователя francisco-vergeraили принадлежит ему sixven? Вы должны уточнить, что именно вы хотите сделать. Написать в чужом доме? Поделиться этим каталогом среди группы?
Лейаз

Ответы:


54

Прежде всего вы должны знать, что разрешение по умолчанию для каталогов в Ubuntu - 644, что означает, что вы не можете создать файл в каталоге, который вы не являетесь владельцем.

Вы пытаетесь user:francisco-vergaraсоздать файл в каталоге, /home/sixven/camp_sms/inputsкоторый принадлежит user:sixven.

Итак, как решить это:

  1. Вы можете изменить разрешение каталога и разрешить другим создавать файлы внутри.

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

    Эта команда рекурсивно изменит разрешение каталога и позволит всем другим пользователям создавать / изменять и удалять файлы и каталоги внутри.

  2. Вы можете изменить владельца корабля этого каталога и сделать user:francisco-vergaraего владельцем

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

    Но, как это, user:sixvenвы не можете снова писать в эту папку, и, таким образом, вы можете двигаться по круговому бесконечному циклу.

Поэтому я советую вам использовать вариант 1.

Или, если к этому каталогу будут обращаться оба пользователя, вы можете сделать следующий трюк:

смените владельца каталога на user:francisco-vergaraи сохраните владельца группы group:sixven.

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

Таким образом, оба пользователя все еще могут использовать каталог.

Но, как я уже говорил, проще всего и эффективнее использовать вариант 1.


11
Воскрешая это, чтобы сказать: вы почти никогда не должны ничего 'chmod -R 777'. Правильная установка собственности - гораздо более безопасная практика. digitalocean.com/community/tutorials/... askubuntu.com/questions/20105/...
Дуглас Адамс

12

Чтобы изменить владельца файла, сделайте это от имени пользователя root:

chown -R user:user /home/sixven

Если вы решили пойти по пути chmod:

Если вы знаете, что пользователь является частью группы файла

chmod -R g+rw /home/sixven

Иначе:

chmod -R o+rw /home/sixven

Но этот путь не слишком безопасен.


Работает как шарм
Фарис Райхан

1

По умолчанию UMASK 022 (в Ubuntu), поэтому разрешения для / дома / имя пользователя становится 755. , и вы вошли в систему как пользователь francisco-vergaraи пытается создать файлы пользователя sixyen Home: то есть /home/sixven. он не имеет разрешения на запись для других пользователей. Только пользователь / группа sixvenимеет право на запись.

если вам нужен доступ для записи в этот каталог, то вам нужно быть частью группы, sixvenиспользующей usermod -G sixyen francisco-vergara ИЛИ chmod -R 777 /home/sixven(не используйте это плохая практика).


Вы не торопите вещи немного? Мы до сих пор не знаем ситуацию ОП.
Гюнтберт,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.