LINUX.ORG.RU
ФорумAdmin

Рабочее пространство с ограниченными правами для клиентов

 , ,


0

1

Здравствуйте! На работе появилась необходимость организовать рабочее пространство (далее - РП) для клиентов. РП должно работать следующим образом:

  1. Автозапуск без формы авторизации/выбора пользователя. Учётка специально для клиентов;
  2. После запуска автоматически открывается браузер с нужным URL;
  3. Как клиент закончил работу - стереть данные (куки, возможно сохранённые пароли и тд) через n количество времени;
  4. Возможность свернуть браузер, чтобы открыть текстовый редактор (libreOffice Writer);
  5. Стирать сессию через n количество времени (сессию рабочей среды). То есть, чтобы удалялись возможные сохранённые файлы клиента на рабочем столе.

В общем, чтобы РП функционировало в режиме киоска.

В качестве «черновика» такого РП я использую виртуальную машину VMware с ubuntu-18.04.6-live-server-amd64. Далее пространство будет ставиться на моноблоки (если что-то из этого получится).

Можете, пожалуйста, подсказать в каком направлении лучше всего двигаться, какая среда лучше всего подходит для этого или же, быть может, есть какие-то иные методы решения подобного ТЗ? Пробовал openbox и xfce, но в должной мере организовать не получилось (возможно я делал что-то не так).

Перемещено hobbit из general

«Непонятное ТЗ - результат всегда ХЗ.»

  1. Есть учетка «Гостя». Хотя-бы в качестве отправной точки.

  2. Что добавишь в «autostart», то и откроется.

  3. Хранить данные для клиента или для «сверху»?

  4. Что наколобродишь, то и будет.

  5. Опять, для кого хранится, для клиента или для «сверху»?

Ситуация. Пришел клиент1. Поработал, ушел. До того, как удалилась сессия клиента1, пришел клиент2. Авторизации нет, как его отличть от клиента1? Значит он увидел созданное клиентом1? Или, любой следующий - это уже другой клиент. То есть, свои-же данные клиент1 уже не увидит. Зачем хранить?

andytux ★★★★★
()

Обычная сборка ubuntu с рабочим столом по вкусу.

Пункты 1) и 2) можно сделать через настройку display manager (автологин без пароля) и автозапуска (браузер туда засунуть и установить нужную домашнюю страницу).

Пункт 4) - просто добавь в сборку только браузер и lo writer, ну и простой текстовый редактор на всякий случай, больше ничего из приложений не добавляй.

Пункты 3) и 5) можно реализовать пачкой баш-скриптов, но я бы сделал изящнее: использовал btrfs в качестве файловой системы, вынес референсный профиль пользователя на отдельный subvolume и модифицировал бы скрипты логина/выхода из сеанса (которые в display manager) так, чтобы при логине делался записываемый снапшот btrfs с subvolume референсного юзера, пользователь работал бы в этом снапшоте, как в своём домашнем каталоге, а при выходе из сеанса этот снапшот бы уничтожался.

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

Касаемо п.3 - Да, безусловно могут возникнуть ситуации, когда клиент1 уходит и за ним следом приходит клиент2. Пока что сказали не думать об этом.

Удаление данных вроде как можно сделать с помощью групповых политик браузера (по типу IdleTimeout и IdleTimeoutActions в chromium), однако когда я делал что-то подобное в openbox (был автозапуск браузера с нужной ссылкой и в autostart’e через while true с интервалом 2с запускался после закрытия). Однако этот способ не сработал. Неактивность не регистрировалась никак.

Касаемо п.5 - Вероятно перезапуск сессии через, допустим, 5 минут бездействия(?). Честно говоря не знаю, как можно это сделать. Про гостевую сессию да, слышал, но нужно именно сделать так, чтобы файлы, которые мог оставить клиент на рабочем столе - удалялись до того, придёт клиент2, чтобы у клиента2 не было взаимодействия с личными данными клиента. Спасибо за ответ.

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

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

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

Спасибо за ответ! Забыл упомянуть про невозможность пользователя взаимодействовать с настройками системы (то есть клиент не должен иметь возможность зайти в настройки, терминал, поменять тему или ещё что-то). Сегодня думал на xfce как сделать, что-то получилось, однако, если ПКМ - появляется панель xfce4-popup-applicationsmenu. Раньше можно было в той же xfce в директории /etc/xdg/xfce4/kiosk задать сеансы для компонент. Но это удалили и теперь надо через xml задавать кому доступ разрешён, а кому нет.

В общем если не разводить воду нужно графический интерфейс ещё ограничить как-то

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

Зачем эти все ограничения? При перезапуске сессии это всё сотрётся. В терминале «клиент» ничего сделать не сможет, так как у него нет прав. Оставить ему «в меню пуск» только нужные приложения + убрать все лаунчеры (типа как alt+f2 в КДЕ) и всё.

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

Это конечно да, просить можно, просто, наверное, было бы хорошо сделать это всё автоматизированно (если программно есть такая возможность) Однако тут вытекает конечно очень много «но».

Спасибо за ответ.

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

Не сомневаюсь, что ты бы сделал её быстро и качественно за относительно адекватный прайс, но хотелось бы, конечно самому в этом разобраться. Спасибо за идею пункта 3, 5. Буду пробовать!

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

Если народу много (не срабатывает таймер), а клиент готов поделиться своими данными (не «завершил сессию» после себя) то тут ничего не сделать.

vitruss ★★★★★
()

А в чём проблема? Автозаход под заданным юзером есть почти в любом DM. Для остального автозапустить FF и офис, и выпилить в openbox любые возможности по запуску чего бы то ни было. Панельку ещё добавить по вкусу, tint2 какой-нибудь, чтобы между FF и офисом переключаться.

yu-boot ★★★★
()

Много лет назад, когда контенеров не было, а виртуалки были слишком тяжелыми, подобные задачи в Шапке решались с помощью sandbox policy.

i586 ★★★★★
()