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

Оцените статью

А зачем такое извращение вообще надо? Наверное спросите вы, а вот например для того, чтобы от имени пользователя работать с виртуальными хостами 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

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

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

GlusterFS — это масштабируемая, распределённая файловая система с открытым исходным кодом, которая объединяет хранилища нескольких серверов в единое пространство имён. Она идеально подходит для создания отказоустойчивых и высокопроизводительных хранилищ, особенно…

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Запихать Mysql в Kubernetes оказалось не очень хорошей идеей и я решил основательно пересмотреть инфраструктуру своего pet-проекта и за основу будет принят кластер из трех серверов. На каждом узле кластера…

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

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

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

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS