Как я могу удалить файлы, принадлежащие другому пользователю? - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть специальная команда laravel, которая каждый час создает файлы в каталоге /storage/app/something (forge пользователь владеет ими). ​​

После этого пользователь laravel не может удалить эти файлы с дискачерез админку, потому что он не является их владельцем.

Пользователь может удалить их только после использования sudo chmod -R storage/app/something.

Как сделать этот каталог редактируемым для пользователя forge и для пользователя www-data?

1 Ответ

0 голосов
/ 09 декабря 2018

Используйте следующие команды

sudo chown -R forge /storage/app/something
sudo chgrp -R www-data /storage/app/something
sudo chmod 2770 /storage/app/something

Первая команда делает forge владельцем каталога.

Вторая команда меняет группу каталога на www-data, что означаетчто любой пользователь в группе www-data может получить доступ к каталогу с разрешениями группыВ частности, эта группа содержит пользователя www-data, поэтому она должна предоставить www-data доступ.

Третья команда выполняет следующее: Предоставляет пользователю (в данном случае forge) уровень доступа 7 (rwx).Предоставляет группе (в данном случае www-data) уровень доступа 7 (rwx).Предоставляет всем другим пользователям уровень доступа 0 (---), что означает, что другие пользователи не могут получить доступ к каталогу (замените его на 5, чтобы предоставить им разрешение только для чтения).

Наконец, 2 в * 1018Команда * устанавливает так называемый бит setgid в каталоге, что означает, что все новые файлы будут наследовать группу каталога, а не группу того, кто создал файл.Это означает, что файлы будут иметь группу www-data, что позволит группе получать доступ к файлам.


Конечно, вы также можете просто сделать sudo chmod 777 /storage/app/something, что предоставит любому полный доступ к каталогу,но это плохая практика.

...