Я администрирую сетевое окружение, и у меня вчера возникла интересная ситуация. Когда хост требует выключения обычным пользователем, он отказывается сделать это, если другие пользователи вошли в систему локально. Это, однако, не тот случай, когда другие пользователи вошли в систему через SSH. Если один пользователь вошел в систему локально, а один пользователь вошел в систему через SSH, а локально вошедший в систему пользователь попытается завершить работу, то это произойдет даже без предупреждения, а соединение SSH другого пользователя будет внезапно прервано. У меня вопрос, есть ли способ предотвратить это, как это делает политика для локальных пользователей? Я уже заглянул на страницу справочника sshd_config
и не смог найти ничего похожего.
РЕДАКТИРОВАТЬ (Дополнительная информация.):
В сети есть 4 ОС: Mandriva 2009, Mandriva 2010.2, Mandriva 2011 и Ubuntu 11.04. В конкретном случае, о котором я говорю, был пользователь SSH на хосте Mandriva 2009 и локальный пользователь на хосте Mandriva 2011.
Хосты Mandriva 2009 используют среду GNOME 2.28, хосты 2010.2 используют GNOME 2.32, хосты 2011 используют KDE Plasma, а хосты Ubuntu 11.04 используют Unity.
Обновить
Как я отметил в этом вопросе , я изучил polkit
действия в /usr/share/polkit-1/actions/
и нашел (в файле org.freedesktop.consolekit.policy
) вызванное действие, org.freedesktop.consolekit.system.stop-multiple-users
которое выбрасывает сообщение
System policy prevents stopping the system when other users are logged in
Я думаю (из-за org.freedesktop.*
соглашения об именах), что это какой-то сигнал, посылаемый DM через D-BUS. Я думаю, что если я смогу узнать, какой сигнал запускает это polkit
действие, я смогу изменить его поведение. Любые идеи?
Обновление 2
Сегодня я попробовал небольшой эксперимент, и он дал мне очень странные результаты. Я попытался войти через SSH в одну коробку и удостоверился, что никакие другие пользователи не вошли ни на одном VT. Если я выбираю в Shutdown
меню «Действия» GDM, я получаю долгожданное сообщение о политике, информирующее меня о том, что это невозможно сделать без аутентификации, поскольку вошли другие пользователи. Однако , если я использую GDM для локального входа и выбора чтобы закрыть окно из меню GNOME, сеанс SSH, как и прежде, прерывается. Как это возможно? Отличается ли поведение, когда я инициирую shutdown
запрос из GDM, и когда я инициирую его изнутри gnome-session
? Это говорит кому-нибудь что-нибудь, что может помочь мне решить проблему?