PHP Копирование файлов и права доступа [дубликат]

249
19 декабря 2017, 19:18

На данный вопрос уже ответили:

  • Редактировать файлы в docroot от имени другого пользователя 1 ответ

В веб приложении использую копирование файлов с одной папки сервера в другую с помощью команды:

system("cp -r $from $to");

Проблема в том, что owner и group у скопированных файлов получается www-data. И в итоге текущий юзер не имеет прав на редактирование этих файлов.

Какие есть варианты решения проблемы? Может ли php копировать файлы от имени юзера или может как-то правильно настроить права групп и юзеров, что бы не надо было заходить ручками в шелл и править юзера и группу на нужную

Answer 1

Даёте пользователю www-data доступ через sudo к chown - команде для изменения владельца файла. Для этого:

1) открываете из терминала /etc/sudoers

$ sudo visudo

2) добавляете такую строку:

www-data ALL=(ALL) NOPASSWD: /usr/local/bin/chown-my-files

3) в /usr/local/bin/chown-my-files

#!/bin/bash
[ -d $1 ] && chown other-user $1

4) устанавливаете права на запуск этой обертки

$ chmod 755 /usr/local/bin/chown-my-files
$ chown root /usr/local/bin/chown-my-files

Дальше в php скрипте вызываете chown:

shell_exec("sudo /usr/local/bin/chown-my-files \"$path-to-file\"");
READ ALSO
PHP событие onclick и Form action=“delete.php”

PHP событие onclick и Form action=“delete.php”

При попытке повесить событие на кнопку onclick = 'showHint(thisname)' то сценарий delete

244
PHP Pregreplace замена pattern

PHP Pregreplace замена pattern

ЗдравствуйтеЕсть регулярка для замены bbcode-смайла:

249
Как изменить переменную в php-файле

Как изменить переменную в php-файле

Есть php-файл примерно с таким содержимым

175
Как добавить условия проверки на “битые ссылки” с использованием cURL?

Как добавить условия проверки на “битые ссылки” с использованием cURL?

Добрый день! Подскажите пожалуйста, поставил плагин проверки "битых ссылок", но необходимо его расширить, добавить пару url-адресов для проверки...

159