@wagwandude

Как настроить права для новых папок и файлов?

Всем привет!

Совсем недавно перебрался на Ubuntu.
Выбрал данную систему для более удобной разработки и остался доволен.
Единственное, чего я никак не могу понять, так это права на папки и файлы.
Банальный пример, чтобы поднять сайт на Laravel, пришлось всей папке проекта дать права 755, а для /storage - 777.
А как было просто на Windows, просто создал папку и перекинул :)

Теперь ближе к проблеме.

В корневой папке /public, по-умолчанию созданы папки с максимальными правами (задавал через свойства):
/files
/files/folder1
/files/folder2

Когда я пытаюсь создать внутри /files/folder1 следующее:
$dir_1 = 'files/folder1/' . $id . '/';
$dir_2 = $dir_1 . 'subfolder1/';
$dir_3 = $dir_1 . 'subfolder2/';

File::makeDirectory($dir_1, 0775, true);
File::makeDirectory($dir_2, 0775, true);
File::makeDirectory($dir_3, 0775, true);


То получаю папки не полностью доступными.
И дальше, когда я пытаюсь с ними взаимодействовать (вызываю Python скрипт в этом же проекте, который обрабатывает изображения) - ничего не выходит.
Но если я создам эти папки вручную и через свойства поставлю полный доступ для "Others" - все работает.

В общем, подскажите как задать правильные права? Уже битый час мучаюсь.
Заранее спасибо.
  • Вопрос задан
  • 1387 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега Linux
В windows не было просо, да обычные права вы выставляли легко, но если я вам задам вопросы по владельцам и группами тд, то вы скорее всего засыпитесь.
В линуксе все права пишутся в одну строчку что очень удобно и понятно.
Ваша проблемма не в правах 755 и 777 а в том что вы не понимаете их до конца. Права это не только эти 3 цифры.
А так же еще и владелец и группа.
В вашем случае что происходит.
Вы как владелец попадаете в группу 1 и у вас права 7
А вот второй пользователь уже не попадает ни в группу "доверительных" а смело в последнюю, что в вашем случае уже не принципиально поскольку и там и там 5 5 соответственно.
Обратите внимание более внимательно на права файла.
777 root root вот права на файл, на самом деле там еще есть пара специфических прав но сейчас вам они будут не нужны
Владельца файла меняют через chown -R user:group /home/www/test.ru
НО УЧТИТЕ! их нужно менять очень внимательно поскольку если смените на системной папке то убьете ее!
По сути что вам нужно сделать
Выставлять качественные права 755 ибо 777 это костыль
В идиале вам для этого нужно чтоб юзер и группа совпадали и там и там, в таком случае вы попадете в 7 и там и тут.
Второй вариант 775 и добавить пользователя в доверительную группу.

Посмотрите тут все есть и владелец и группа https://sheensay.ru/wp-content/uploads/2015/06/ls-l.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
в правах доступа, первая цифра - для владельца, вторая для группы, третья - для Others.
Если у вас для others - 5, это означает читать и выполнять (для папок заходить и читать), но не писать.
Ставьте 777 или почитайте про POSIX права чуть подробнее.
Ответ написан
fdroid
@fdroid
press any key
ACL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы