Как заставить систему использовать несколько файлов passwd?

Рейтинг: 1Ответов: 1Опубликовано: 17.08.2023

Собираю Linux From Scratch, но особенный. Я хочу сделать жесткое разделение базовой и остальной системы. То есть, должно быть два раздела: корневой в read-only, и второй - уже r/w.

Но беда в том, что я хочу использовать несколько файлов passwd и groups. Причина проста: необходимо, чтобы программы, в случае невозможности системы подмонтировать rw раздел, все равно понимали root пользователя (а не выдавали "I have no name!" и прочую ерунду).

Да и в целом, хочу изначально записать в систему некоторых системных пользователей и группы, помимо root-а. То есть надо заставить систему использовать файл /usr/local/etc/passwd (да, RW-раздел будет монтироваться в /usr/local) для сторонних пользователей и групп и /etc/passwd для системных.

Можно ли без залезания в исходники (glibc, musl, bionic), заставить систему искать файлы аутентификации (и писать в них) по определённым правилам? И если да - то как эти правила описать?

Ответы

▲ 1Принят

/usr/local/etc/passwd создавай на RO разделе. /etc/passwd симлинком на этот путь. Когда смонтируется /usr/local/, то этот файл подменится. Но нужно будет продублировать системных пользователей в файле на rw.

Но то что вы описываете делается через настройку /etc/nsswitch.conf. Тут я вижу объединение баз, но не вижу как поменять путь для модулей compat или files. Похоже единственный способ - создать и скомпилировать плагин скопировав его из стандартного.

Ещё один способ - настроить локальный ldap.

Для systemd систем можно пользователей и группы прописать в systemd.