На данный вопрос уже ответили:
В веб приложении использую копирование файлов с одной папки сервера в другую с помощью команды:
system("cp -r $from $to");
Проблема в том, что owner и group у скопированных файлов получается www-data. И в итоге текущий юзер не имеет прав на редактирование этих файлов.
Какие есть варианты решения проблемы? Может ли php копировать файлы от имени юзера или может как-то правильно настроить права групп и юзеров, что бы не надо было заходить ручками в шелл и править юзера и группу на нужную
Даёте пользователю 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\"");
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости