Монтирование локального каталога со сменой владельца

А зачем такое извращение вообще надо? Наверное спросите вы, а вот например для того, чтобы от имени пользователя работать с виртуальными хостами Nginx и писать и читать от имени пользователя с правами владельца этого виртуального хоста.

Хотя такое извращение можно сделать и при помощи ACL, вот такой метод проще и надежнее.

Итак, как я уже писал в заметке Установка WordPress в Bare Metal Ubuntu 24.04 LTS я настроил локальное окружение идентичное натуральному и теперь мне хотелось бы с ним работать, а точнее добавить его в Visual Studio Code, но как вы понимаете владельцем файлов является пресловутый www-data, а не я и мне туда в лучшем случае дадут посмотреть даже если я себя в эту группу добавлю. Есть такие нюансы в этих ваших Linux-ах и посему мы пойдем другим путем.

Создаем каталог в котором будем вести разработку и у меня он будет вот такой интересный.

$ mkdir -p /home/chernousov/Development/INTERLAN/cv-blog

И вот теперь надо сделать интересный финт ушами чтобы у меня в каталоге для разработки все файлы которые лежат в виртуальном хосте Nginx и принадлежат пользователю www-data отображались и редактировались моим локальным пользователем, а при создании и сохранении становились как созданные и отредактированные от имени www-data. Интересная загогулина вырисовывается, но на самом деле все очень просто.

Нам понадобится утилита bindfs.

# aptitude install bindfs

И добавить в /etc/fstab вот такое хитрое заклинание.

bindfs#/var/www/vhosts/stage-blog.anton-c.ru/ /home/chernousov/Development/INTERLAN/cv-blog/ fuse force-user=chernousov,force-group=chernousov 0 0

Проверяем, что мы теперь как будто владелец этих файлов.

$ ls -lua /home/chernousov/Development/INTERLAN/cv-blog/
total 252
drwxr-xr-x  5 chernousov chernousov  4096 янв 10 05:53 .
drwxrwxr-x  4 chernousov chernousov  4096 янв 10 11:34 ..
-rw-r--r--  1 chernousov chernousov   372 янв  7 10:52 .htaccess
-rw-r--r--  1 chernousov chernousov   405 янв  7 10:52 index.php
-rw-r--r--  1 chernousov chernousov 19915 янв  7 10:52 license.txt
-rw-r--r--  1 chernousov chernousov  7409 янв 10 05:53 readme.html
.....

Казалось бы, что теперь все нормально, но как вы видите есть нюанс и при создании файла в каталоге назначения его владельцем становлюсь я сам, а не www-data.

$ echo > /home/chernousov/Development/INTERLAN/cv-blog/test.txt
$ ls -lua /var/www/vhosts/stage-blog.anton-c.ru/ | grep test.txt
-rw-rw-r--  1 chernousov chernousov     1 янв 10 12:06 test.txt

Это нас категорически не устраивает и мы усложним заклинание.

bindfs#/var/www/vhosts/stage-blog.anton-c.ru/ /home/chernousov/Development/INTERLAN/cv-blog/ fuse force-user=chernousov,force-group=chernousov,create-for-user=www-data,create-for-group=www-data 0 0

Вот теперь все правильно.

$ ls -lua /var/www/vhosts/stage-blog.anton-c.ru/ | grep test.txt
-rw-rw-r--  1 www-data www-data     1 янв 10 12:47 test.txt

Похожие записи

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Nextcloud — отличное решение для хранения файлов, но управление пользователями вручную становится головной болью при масштабировании. Keycloak позволяет централизовать аутентификацию, обеспечивая безопасность, поддержку MFA (двухфакторной аутентификации) и удобный вход через…

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Пакеты в Ubuntu по умолчанию настроены на работу с серверами, имеющими довольно много оперативной памяти. Нам нужно жёстко ограничить потребление памяти для работы на Mikro VPS. Запускать будем мой блог…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Интеграция Nextcloud с Keycloak через OpenID Connect: пошаговое руководство по настройке SSO

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Установка и оптимизация WordPress на Ubuntu 24.04 (LEMP + Redis) на VPS с ограниченным объёмом RAM

Интеграция Gitea и Keycloak: пошаговое руководство

Интеграция Gitea и Keycloak: пошаговое руководство

Настройка VS Code AI Chat для работы со сторонним OpenAI провайдером.

Настройка VS Code AI Chat для работы со сторонним OpenAI провайдером.

ProxyChains специфическая работа с прокси-серверами в UNIX/Linux-системах

ProxyChains специфическая работа с прокси-серверами в UNIX/Linux-системах

Полное руководство по установке и настройке мониторинга с Grafana и Prometheus: от установки до первого дашборда

Полное руководство по установке и настройке мониторинга с Grafana и Prometheus: от установки до первого дашборда