Я знаю, что вопрос довольно распространен, но, похоже, я не нашел хорошего ответа.
Настройка выполняется следующим образом - есть веб-сервер и есть папка, в которой Apache (пользователь www-data) создает каталоги и загружает / удаляет файлы.
Веб-мастер может решить для добавления или удаления некоторых файлов.
В большинстве настроек хостинга используется один и тот же пользователь и для Apache, и для веб-мастера.
Я смог сделать это внутри самой папки, установив chmod 770
и создав группу, которая включить обоих пользователей, но я не смог сделать это для вложенных папок.
Я также хочу избежать использования umask
.
Попробуйте вот так:
Введите в корневую папку код
cd /var/www/html/
И попробуйте это для файлов:
sudo find -type f -exec chmod 664 {} \;
И для каталогов:
sudo find -type d -exec chmod 775 {} \;
А для владельца можно попробуйте
sudo chown www-data:www-data -R /var/www/html
Это найти все папки и файлы и изменить разрешения на то, что вы хотите, С уважением!
Я бы использовал 664 (rw-rw-r--) вместо 770 (rwxrwx ---) для файлов (по умолчанию (rw-r - r--), поэтому файлы могут быть прочитаны всеми и бит выполнения не установлен.
Для каталогов (где по умолчанию rwxr-xr-x) вам нужен бит выполнения для входа в каталог и доступа к файлам.
С setgid
автоматически создаваемые файлы принадлежать к группе каталога (а не к группе по умолчанию пользователя, создавшего файл),
чтобы другие пользователи той же группы могли их изменять.
Если ваш каталог - / var / www / html
, а ваша группа с разрешением на запись - www-data
, то это все вам нужно:
Измените каталоги на 2775 (rwxrwsr-x) с установленным setgid
.
find / var / www / html -type d -exec chmod 2775 {} +
Установите setgid
только для каталогов (если другие разрешения уже верны)
find / var / www / html -type d -exec chmod g + s {} +
Измените файлы на 664 (rw-rw-r -)
find / var / www / html -type f -exec chmod -v 664 {} +
Рекурсивно изменить группу на www-data
chgrp -R www-data / var / www / html
Или рекурсивно измените пользователя и группу на www-data
chown -R www-data: www-data / var / www / html
Вы можете добавить подробный параметр -v
к приведенным выше командам, чтобы увидеть, что было изменено.
Добавить пользователя имя пользователя
в группу www-data
usermod -a -G www-data имя пользователя