Створити файл у папці: у дозволі відмовлено


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? Чому його немає у вашому домашньому каталозі?
тердон

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), тому дозволи для дому / home / username стає 755. Ви ввійшли як користувач francisco-vergaraі намагаєтеся створити файли в користувачі sixyen Home: тобто /home/sixven. він не має дозволу на запис для Інших користувачів Тільки Користувач / Група sixvenмають доступ до запису.

якщо ви хочете отримати доступ до запису в цей каталог, вам потрібно бути частиною групи, sixvenвикористовуючи usermod -G sixyen francisco-vergara АБО chmod -R 777 /home/sixven(не використовуйте це погана практика).


Ви трохи не поспішаєте? Ми досі не знаємо ситуації з ОП.
guntbert
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.