Разрешить доступ к папкам и подпапкам нескольким пользователям с возможностью перезаписи файлов

Я знаю, что вопрос довольно распространен, но, похоже, я не нашел хорошего ответа.

Настройка выполняется следующим образом - есть веб-сервер и есть папка, в которой Apache (пользователь www-data) создает каталоги и загружает / удаляет файлы.

Веб-мастер может решить для добавления или удаления некоторых файлов.

В большинстве настроек хостинга используется один и тот же пользователь и для Apache, и для веб-мастера.

Я смог сделать это внутри самой папки, установив chmod 770 и создав группу, которая включить обоих пользователей, но я не смог сделать это для вложенных папок.

Я также хочу избежать использования umask .

0
задан 17 April 2019 в 16:00
2 ответа

Попробуйте вот так:

Введите в корневую папку код

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

Это найти все папки и файлы и изменить разрешения на то, что вы хотите, С уважением!

0
ответ дан 5 December 2019 в 03:26

Я бы использовал 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 имя пользователя
     
0
ответ дан 5 December 2019 в 03:26

Теги

Похожие вопросы