Linux. Debian. VMWare. fuse. Правильные права на файлы и каталоги?
Доброго дня!
Требуется помощь/консультация специалиста по Linux.
Ситуация следующая:
1. Есть хост (debian, внутри несколько вм на VMWare, VMWare работает от имени пользователя username), на котором существует каталог /mnt/storage/cloud, владелец каталога username:username права на каталог 700;
2. Есть гостевая машина (debian), в которой указанный выше каталог примонтирован в /mnt/hgfs/cloud, при этом владелец каталога username:username, права на каталог 700;
3. На гостевой машине работает веб-сервер, на котором среди сайтов крутится облако - nextcloud. Каталог nextcloud /var/www/nextcloud, владелец каталога nextcloud www-cloud:www-data, облако работает под пхп-фпм пулом www-cloud;
4. Все пользовательские файлы nextcloud складывает по пути /mnt/hgfs/cloud, при этом на все создаваемые им каталоги и файлы устанавливаются права 755 и 644 соответственно, а владелец - username:username
Вопрос: да как так то? Каким образом устанавливаются права на файлы и каталоги и их владелец? Нужно, чтобы права выставлялись 700 и 600.
Дык этож не винда, наследования прав нет. Процесс создающий файл сам задает права доступа.
Гуглите umask.
Установите нужную маску для пользователя из-под которого работает www-cloud.
И еще, по моему, чтоб схема работала должно быть username UID == www-cloud UID
Спасибо за ответ.
На наследование прав я и не рассчитываю. Вопрос в том, где и каким образом определяется, какие права облако выставляет на файлы?
На всякий случай продублирую: на госте все процессы работают от пользователя username, под этим же пользователем работает vmware на хосте, он же владелец файлов и каталогов, расшариваемых гостю.
Просто никак не отловлю, как заставить создавать файлы недоступные на чтение всем и вся
Этого я не знаю. Возможно это можно сконфигурировать в конфиге или нет. Но с помощью umask вы извне можете повлиять на процессы пользователя, которые создают новые файлы. Не зависимо от того какие права хочет назначить процесс, на них все равно накладывается маска установленная umask: https://handynotes.ru/2010/02/umask.html https://linux.die.net/man/2/umask
Правда есть одно но! Процесс сам может установить для себя маску. Тогда вы ничего сделать не сможете.
на госте все процессы работают от пользователя username, под этим же пользователем работает vmware на хосте
На никсах имя пользователя значения не имеет, имеет значение User ID (UID) - идентификатор пользователя. Его можно посмотреть в /etc/passwd
res2001, да, не уточнил опять. И имя пользователя и uid одинаковые на хосте и на госте.
Правильно ли я понимаю, что задав пользователю umask 027, вообще все каталоги, создаваемые пользователем и его процессами, будут иметь права 750, а файлы 640?
Но что, если маску нужно применить только к одному каталогу?
Но что, если маску нужно применить только к одному каталогу?
К сожалению это работает глобально.
Максимум чего можно добиться это ограничить umask конкретного процесса, если запускать его скриптом в котором предварительно устанавливать значение umask.
Adamos, расшареный виртуалке раздел монтируется с помощью fuse, а как там этот шайтан монтирует...
в etc/fstab этого раздела даже нет
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=d51a7f39-a47a-4000-b424-9ef011c5464b / ext4 errors=remount-ro 0 1
# /home was on /dev/sda8 during installation
UUID=d9c3f55e-ac3e-4994-a86f-f9ab155dc973 /home ext4 defaults 0 2
# /tmp was on /dev/sda7 during installation
UUID=ec415539-0465-42a9-a8a8-48e160389806 /tmp ext4 defaults 0 2
# /var was on /dev/sda5 during installation
UUID=e14b8420-4cfd-4b4d-81a9-85160c681209 /var ext4 defaults 0 2
# swap was on /dev/sda6 during installation
UUID=ed5e8726-4e7c-473d-8d88-1128b9452671 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Дмитрий, а под каким веб-сервером работает nextcloud? Сам по себе он - просто приложение на пыхе, маска создаваемых файлов определяется настройками сервера (у Апача, например, такой пункт в настройках есть).
Владелец каталога самого облака (/var/www/cloud.domain.ru) www-cloud:www-data, пхп-фпм работает в отдельном пуле - www-cloud.
Каталог, куда складываются пользовательские файлы примонтирован с помощью fuse из хоста, на него права 750 при владельце username:username.
А вот все создаваемые внутри него каталоги и файлы имеют права 755 и 644, при этом владелец - все тот же username:username. Пониже бы права, но как не понимаю.
Дмитрий, гуглите, как настроить только один пул, тут не подскажу. В том же Апаче можно было бы положить .htaccess, куда надо, в nginx, видимо, придется выстраивать конфиги.