Настройка file permissions (0775,0755, 0664, 0644) в Ubuntu для всех юзеров

Итак, у нас есть проблема: ФТП юзер распаковал сайт, сайт поработал и создал нередактируемые файлы (логи, либо при загрузке картинок\файлов, либо...). Налицо конфликт доступов.

Для этого вначале для нашего юзера добавляем группу www-data и делаем её основной

Затем юзера www-data на всякий случай добавляем в группу основного ftp-юзера.

  • sudo usermod -a -G monkey www-data
  • sudo usermod -g www-data monkey

Затем для Ubuntu 20.04 делаем изменение umask. Напомню, umask = 022 или 0022 означает, что эта цифра вычитается из дефолтной системной цифры доступа, которая часто равна 0777. Таким образом 0777-0022=0755, которая и назначается на папки.

Эта цифра означает, что члены группы могут видеть, но не могут редактировать файл, созданный www-data. Чтобы это исправить, надо базовый umask=022 исправить на 002.

Эту цифру можно изменить в десяти разных местах, но лучше всего это сделать в файле sudo nano /etc/passwd, исправив строку на строку по образу:

  • www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
  • www-data:x:33:33:www-data,umask=002:/var/www:/usr/sbin/nologin

После чего перезагружаем сервер, а в случае с виндовой wsl2 перезагружаем всю машину.

При этом в терминале команда umask скорее всего будет показывать старый 022, игнорируем, это, вероятно, баг.

Меняем права на файлы и папки рекурсивно

Теперь время исправить права на все папки и файлы на нашем сайте (или сайтах).

sudo find /var/www/ -type f -exec chmod 664 {} \;

sudo find /var/www/ -type d -exec chmod 775 {} \;

Другие места для смены umask

  • /etc/login.defs - тут меняем UMASK=022 на UMASK=002
Яндекс.Метрика