Изменение HOME пользователя во время графического сеанса

Изменение HOME пользователя во время графического сеанса

На днях у меня возникла идея создать независимую гостевую сессию Display Manager.

Моя основная идея состояла в том, чтобы изменить оболочку входа в систему на пользовательскую программу, которая создает временный дом на лету (например, /tmp/guest-XXXXXX) и назначает этот дом этой сессии. После выхода пользователя он снова удалял этот каталог. Проблема, с которой я столкнулся, заключается в следующем: мне нужно установить дом, /etc/passwdи я могу без проблем перезаписать переменную окружения HOME, но приложения, похоже, все равно используют установленный дом passwdвместо переменной окружения, по крайней мере в графической среде. Я не могу установить дом, passwdпотому что не знаю об этом, пока сеанс не начнется.

Основная логика, к которой я пришел, выглядит так:

  • запущена оболочка входа
  • временный дом создан
  • HOME настроен на этот временный дом
  • настоящая оболочка раздвоена
  • после того, как настоящая оболочка заканчивается, временный дом удаляется

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

Можно ли изменить домашний адрес пользователя на лету/во время активного графического сеанса? Я что-то упустил в архитектуре работы графических сеансов?

Связанный контент