LINUX.ORG.RU
решено ФорумAdmin

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

 ,


0

2

Накидайте идей.

Есть netboot образ, несколько пользователей
Домашние директории на NFS

Хочется где-то в одном месте хранить общую часть профиля пользователей и отдавать в RO или пусть сбрасывать при каждой авторизации.

Пытался завести overlayfs, как наиболее логичное решение, но nfs не может быть upperdir.

Сейчас скрипт запускается силами pam_exec и копирует /etc/skel в профиль пользователя, чем гарантирует нужные ярлыки и некоторые настройки профиля.

Но вот к примеру удалять старые ярлыки скрипт не умеет.

Какие есть альтернативы кроме как наращивать логику скрипта?

★★
Ответ на: комментарий от ox55ff

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

Flotsky ★★
() автор топика

и пусть сбрасывается при каждой авторизации ??
дык и подключи удаленный ro хомяк как lowerdir (nfs или вообще образ в squashfs)
а поверх него локальный tmpfs хомяк. при выходе его размонтировывать и он сбросится.

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

Всё бы хорошо, вот только в RO/сбрасываться должны только условно ярлыки на рабочем столе/настройки интерфейса
Загрузки/профили браузера и других ПО каких бы там не надо было пользователю надо сохранять.

Ну может можно заморочится и каждую RW директорию точечно монтировать с NFS сервера, но это такое себе решение

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

а, ты про это, тебе места штоль жалко ?? :)
забей. чтоб засрать современный носитель, даже в троем, эт надо сильно постараться.
ну можешь видосики, музыки, кеш бравзера и прочий ширпотреб сделать общими…

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

Ладно, попробую на примере.

Вот есть у меня условные 100 пользователей, читай 100 директорий профилей.

Есть задача «ярлыки/настройки по списку добавить/удалить/изменить»

С добавить/изменить мой скрипт справится. А вот для удалить надо или руками каждому пользователю найти и удалить этот ярлык или обернуть это скриптом каким. Это в любом случае время/ошибки.

Вот я и хочу унести эти ярлыки/настройки в одно общее для всех пользователей место чтобы только туда один раз внести изменение и всё.

Flotsky ★★
() автор топика

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

Например можно сделать линки с покоцаными правами.

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

К примеру в ~/Desktop пользователь может положить что ему захочется рядом с ярлыками и если я почищу эти файлы это не будет хорошо

Но для скажем ~/.config/autostart такая логика вполне сработает

Flotsky ★★
() автор топика

Но вот к примеру удалять старые ярлыки скрипт не умеет.

Удаляй весь профиль и воссоздавай заново.

Или храни профили в tmpfs.

Вообще пока не понял сути проблемы.

alt-tab-let ★★
()

rclone как продвинутый синхронизационный демон мог бы помочь делу ИМХО.

или можно общую часть профилей положить в какую-то специальную папочку, а юзерам в их домашние директории раскидать симлинки...

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

Тебе нужно использовать систему оверлеев, когда есть base_system, base_home, home_user1

Где первые два пункта это sfs ro а 3 пункт это nfs rw

Первые два ты хоть на http сервер положи

Только тебе правильно загрузчик приготовить нужно

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

Плюсую систему оверлеев, будет похоже на винду.
Но это только если нужны условные файлы/каталоге для «только чтения», типа «ярлыков», «шаблонов» и т.д.
Если нужно ещё и настройки распространять, то выбирай Puppet, Chef, Ansible, Salt, etc..

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

Весь нужный софт ставится в хомяк по пути .local/*

Где собственно user root и находится, всё что ты перечислил впринципе не нужно, настройки хранятся в деривативах производных от base_home, в зависимости от роли юзера

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

Я не спрашиваю как мне образ собрать, только варианты для вынести часть данных профиля куда-то в общее место.

home_user1
пункт это nfs rw
систему оверлеев

А тему почитать?

Пытался завести overlayfs, как наиболее логичное решение, но nfs не может быть upperdir.

https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html#upper-and-lower

3 абзац явно говорит, что nfs not suitable как upper. Я всёравно попробовал, оно просто не монтируется

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

К примеру в ~/Desktop пользователь может положить что ему захочется рядом с ярлыками и если я почищу эти файлы это не будет хорошо

А если он туда ещё один ярлык положит?

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

А это исключение, которым я возможно готов пожертвовать.
По крайней мере по статистике ни кто так ещё ни разу не сделал.

Ну в теории я могу добавить в созданные мной ярлыки какую-то строку по которой идентифицировать кто сделал файлик.
Усложнение скрипта синхронизации…

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

Я про то, что ты бы сначала определил способ отличать своё и чужое а потом и реализацию можно придумать, начиная с какой-нить оверлейфс и заканчивая простым скриптом очистки. Пока что кажется без либастрал не обойтись.

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

вот началось правильное действо - подробное разъяснение «чего тебе надобно старче» :)
еще доп.вопрос, а то ту по теме уже идут разногласия:
у тебя система с тонкими клиентами ?? т.е. весь бардак лежит на сервере, на клиенте мелкая запускалка, которая все хомяьи файлы дергает по сети ??
или на клиентах есть носитель с набором файлов пользователя и что добирается по сети ??

к примеру можешь сделать 100 пользовательских проилей в которых ~/Desktop будет представлять собой линк на одну диру которую чистишь.

я б предложил на клиенте после логина монтировать ~/Desktop в виде tmpfs и копировать в него некоторый необходимый набор файлов/ссылок/линков и т.д. апосля выхода содержимое сбрасывается и в следующих заход юзверь начинает с чистого листа.

pfg ★★★★★
()

А если попробовать организовать overlayfs на сервере, где хостятся nfs и монтировать по сети merged каталоги хомяка?
Или и в таком случае nfs и overlayfs тоже не дружат? То, что завести lowerdir и upperdir по сети не выйдет, понятно.

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

А хотя беглым гуглингом натыкаюсь, что так тоже нельзя
https://bbs.archlinux.org/viewtopic.php?id=192585

Тема по ссылке старая, но судя по объяснению в ней причина осталась и никуда не денется

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

Ага, и в виду того, что список общих директорий/файлов мне заранее не известен мы опять возвращаемся к скрипту, который будет поддерживать актуальность наличия этих ссылок

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

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

У меня есть список директорий/файлов на данный момент, которые должны быть общими для всех.

Также у меня есть явное понимание, что этот список будет меняться и я не могу предугадать как.

И у этого списка будет сложная структура т.к. к примеру google-chrome решил хранить свой профиль в .config/..., значит я не могу просто сделать .config общим на всех

Flotsky ★★
() автор топика

Увы за всё это время из альтернатив «доработать скрипт» предложили только реализовать overlayfs на стороне NFS сервера.

Подумал, взвесил. Остановлюсь на скрипте, он в любом случае дальше и для других целей понадобится.
Ожидал, что есть что-то более менее готовое для подобных задач

Flotsky ★★
() автор топика