Как получить доступ к Xorg перед входом в пользовательскую службу, которая нуждается в некоторых функциях X и запущена задержкой пользователя

Простой:

users = read(users.txt)
foreach user in users
  if get_consumed_quota(user) >= get_allowed_quota(user)
    print user
0
26.07.2020, 11:15
1 ответ

До того, как пользователь afsharвойдет в систему, /home/afshar/.Xauthorityне будет содержать действительный файл cookie сеанса X для дисплея X. Он может содержать старый файл cookie от предыдущего входа в систему, но он становится недействительным, как только X-сервер перезагружается при выходе из системы и создает новый файл cookie сеанса.

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

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

Аналогичным образом, молчаливое разрешение процессу пользователя afsharполучить копию нового файла cookie сеанса X, пока пользователь not_afsharвошел в систему с помощью графического интерфейса, было бы нарушением безопасности этого пользователя.

Вероятно, вам следует реализовать часть, которая нуждается в функциях X, в виде отдельного компонента, который использует шину D -или какой-либо другой механизм для связи с основной частью службы. Затем вы можете запустить один экземпляр этого компонента перед входом в систему в сценарии инициализации X-сервера, чтобы он мог выполнять свою работу на экране входа в систему (, работающем от имени пользователя root или какого-либо специального пользователя приложения ), а затем, когда пользователь входит в систему.,пусть он умрет, и сеанс пользователя запустит другой экземпляр этого компонента (, работающий как зарегистрированный -в пользователе ).

Для этого, очевидно, потребуется, чтобы основная служба могла справляться с отключением и перезапуском функционального компонента X, чтобы при необходимости можно было -повторно установить соединение.

1
18.03.2021, 23:17

Теги

Похожие вопросы