Я работаю над Debian10 with php8 fpm + apache2
созданием нового пользователя с группой username:username
и установил домашний каталог для этого пользователя, расположенный по адресу
/home/username/www
конечно у меня есть chmod -R
все папки и файлы username:username
, до того как это было www-data, когда файлы были внутри/var/html
Итак, по сути, у меня есть небольшой скрипт, пытающийся записать папку кэша, но он не работает, когда я изменяю модификатор папок на имя_пользователя:имя_пользователя. Он работает только если я изменяю модификатор папок на www-data?
папка кэша chown 755, и она работает нормально, если ее владельцем www-data
не являетсяusername
возможно ли разрешить username
иметь разрешение на запись, например www-data
?
PS: имя пользователя приведено в качестве примера настоящего.
решение1
Авозможныйподход, позволяющий username
управлять вещами, при этом www-data
имея доступ только для чтения из соображений безопасности и доступ для записи только при необходимости:
Установить
username
как владельца иwww-data
как группуchown -R username:www-data /home/username/www
Дать полный доступ владельцу (чтение/запись/исполнение: 7) и доступ только для чтения группе (чтение/исполнение: 5). У
Other
этой группы нет доступа (0).chmod -R 750 /home/username/www
Предоставьте доступ на запись
www-data
там, где это необходимо:chmod -R 770 /home/username/www/path/writable/by/webserver
Файлы, созданные веб-сервером, будут полностью принадлежать ему ( www-data:www-data
), но владелец каталога ( username
) по-прежнему сможет перемещать их.
решение2
По умолчанию, когда вы устанавливаете PHP-FPM, он устанавливает один пул, который работает как www-data
пользователь. Если вы измените user
и group
на /etc/php/8.0/fpm/pool.d/www.conf
нужного пользователя, то ваш скрипт будет работать как пользователь и www-data
не будет нуждаться в разрешениях на запись.
В вашей конфигурации по умолчанию есть эти 2 строки:
user = www-data
group = www-data
Замените эти строки на:
user = username
group = username
Перезапустите демон FPM.
service php8.0-fpm restart