LINUX.ORG.RU
ФорумAdmin

Почему при ошибке биндинга папки в fstab система вообще не грузится?

 , , , ,


0

1

Добавил сегодня в fstab на сервере:

bindfs#/var/www/КаталогСайта   /home/user/web/КаталогСайта	fuse	create-for-user=www-data,create-for-group=www-data,create-with-perms=u+rwD:g=rwD:o-rwx,chmod-filter=o-rwx,perms=u+rwD:g=rwD:o-rwx,mirror=user1,force-group=developers		0	0

Цель проста - дать доступ к редактирования файлов сайта на тестовой площадке одному из разработчиков - на тестовом серваке у нас дофига таких записей.

Но тут я облажался - в параметре mirror вместо user написал несуществующего пользователя - user1 и после перезагрузки сервак окирпичился. После перезагрузки отвечал только на ping. Загрузившись в rescue режиме я даже не увидел никаких новых логов в /var/log/journal - как так?

Ведь это строка должна обрабатываться только когда все FS уже смонтированы, и здесь не ошибка синтаксиса из-за которой падал бы разбор таблицы - здесь просто несуществующий пользователь в параметре монтирования FS во fuse. К разбору этой строки корень уже должен быть смонтирован и логи уже должны писаться, но нет.

Почему так?

Почему при ошибке биндинга папки в fstab система вообще не грузится?

Как там, в криокамере? systemd не игнорирует ошибки при монтировании ФС, все такие ошибки по умолчанию фатальны и кидают систему в emergency mode.

Ведь это строка должна обрабатываться только когда все FS уже смонтированы, и здесь не ошибка синтаксиса из-за которой падал бы разбор таблицы - здесь просто несуществующий пользователь в параметре монтирования FS во fuse. К разбору этой строки корень уже должен быть смонтирован и логи уже должны писаться, но нет.

Это уже отдельный вопрос.

Ведь это строка должна обрабатываться только когда все FS уже смонтированы

С чего ты взял?

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

А как же все эти умные правила которые генерит systemd, и которые гарантируют что bindfs#/* будет монтироваться гарантировано после UUID / ext4 ?

Да и вообще bindfs обязан отрабатывать после монтирования корня.

Suntechnic ★★★★★ ()
Ответ на: комментарий от Suntechnic

А как же все эти умные правила которые генерит systemd, и которые гарантируют что bindfs#/* будет монтироваться гарантировано после UUID / ext4 ?

Чтобы они работали, нужно пользоваться правильным способом записи:

<what> <where> fuse.<fsname> <options> 0 0

А так как у тебя — это легаси и ломает зависимости.

Да и вообще bindfs обязан отрабатывать после монтирования корня.

После монтирования корня — да. «Только когда все FS уже смонтированы» — нет.

Почему у тебя не пишутся логи в случае проблемного запуска — не знаю. Собственно как это работает, journald сначала логирует в /run, а посередине процесса запуска запускается специальный юнит, который говорит ему «скопируй всё в /var и пиши туда». Возможно, системдпроблемы, а возможно, и убунтопроблемы. Настраивать стенд и воспроизводить мне честно говоря влом.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Чтобы они работали, нужно пользоваться правильным способом записи:

А можешь пример привести? Так:

/var/www/КаталогСайта   /home/user/web/КаталогСайта	fuse.bindfs	create-for-user=www-data,create-for-group=www-data,create-with-perms=u+rwD:g=rwD:o-rwx,chmod-filter=o-rwx,perms=u+rwD:g=rwD:o-rwx,mirror=user1,force-group=developers		0	0

?

Suntechnic ★★★★★ ()

Цель проста - дать доступ к редактирования файлов сайта на тестовой площадке одному из разработчиков

Добавить разработчика в группу-владельца /var/www/КаталогСайта и включить на /var/www/КаталогСайта group sticky вместо городушек с bindfs’ами было бы слишком просто?

dexpl ★★★★★ ()
Ответ на: комментарий от dexpl

Добавить разработчика в группу-владельца /var/www/КаталогСайта и включить на /var/www/КаталогСайта group sticky вместо городушек с bindfs’ами было бы слишком просто?

Добавить разработчика в ACL было бы слишком просто?

anonymous ()
Ответ на: комментарий от Suntechnic

Мимокрокодил.

Слишком глючно и от ACL я в итоге отказался в пользу bindfs

Очень странный ответ. Если это не секрет, в чем ACL у Вас глючит? Я предположительно догадываюсь чего достигнуть хотим, но только предположительно.

anc ★★★★★ ()
Ответ на: комментарий от anc

Я уже не помню - это давно было. Году так в 2010-2012 я использовал ACL для подобных целей и были то ли глюки, то ли сложности.

Цель проста - есть N пользователей и K файловых ресурсов, обощённых до каталогов. Нужно предоставить пользователям возможность беспрепятственно создавать и изменять файлы в данных каталогах.

Причем доступ нужен примерно такой - N1 должен работать с каталогами K1, K2, K3; N2 c K2, K3, K4; N3 c K1, K4, K5; N4 c K2, K4, K5 и т.п.

Suntechnic ★★★★★ ()
Ответ на: комментарий от anc

Ext 4. Да ACL это решает. Но как я говорю - пользовался где-то год, а потом узнал про bind и попробовал его. Это было облегчение огромное когда я на bind перешел, и вот его я помню, а почему мне ACL не зашел - не помню.

Suntechnic ★★★★★ ()
Ответ на: комментарий от Suntechnic

Я согласен ваше решение тоже вариант. Более того, может в определенном случае быть и полезнее. Но искренне простите кмк вы из желудей строите. Хотя если это историческое строение то почему нет. Никаких претензий. У самого тоже исторического хватает. :(

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Я согласен ваше решение тоже вариант

У него есть недостаток - bindfs не очень проста штука по всей видимоcти - бывает что я его в htop вижу в первой пятерки. На домашнем компе правда.

Suntechnic ★★★★★ ()
Ответ на: комментарий от Suntechnic

Знаю. Поэтому и написал «может в определенном случае быть и полезнее». Хотя обычно это редкость с биндинными fs. Как говориться, работает не трогай. Если вас всё устраивает так и оставляйте. А будет время пересмотрите в сторону acl. Это не более чем совет.

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 2)
Ответ на: комментарий от Suntechnic

9 проектов и несколько. У каждого доступ к 1-3 проектам. Чо там про группу?

Напиши то же самое по-русски. В частности, поясни, чего (или кого) несколько, тогда можно будет осмысленно говорить о группах.

dexpl ★★★★★ ()