Как определить, какой пользователь выполнил перезагрузку или завершение работы системы через кнопку в графическом интерфейсе (tty7 или xrdp) при открытии нескольких сессий от разных пользователей?

Здравствуйте, форумчане!

Я прохожу курс “от 0 до Linux админа” (ссылка на курс: https://yodo.im/courses/linux/?v=1d20b5ff1ee9) и столкнулся с проблемой. У меня есть несколько открытых сессий XRDP и одна TTY7 сессия, и возникает вопрос: как мне узнать, какой пользователь выполняет перезагрузку или выключение системы, нажимая на кнопки в графическом интерфейсе?

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

Есть ли какие-то способы или методы, которые помогут мне идентифицировать пользователя, осуществляющего эти действия? Может быть, кто-то сталкивался с подобной проблемой и знает, как ее решить?

Заранее спасибо за советы!

Спасибо за ответ! У меня все получилось, и я смог определить, какой пользователь выполнил перезагрузку или завершение работы системы через графический интерфейс. Ваши советы оказались очень полезными!

Привет!

Здорово, что ты проходишь курс по Linux администрированию! Отвечая на твой вопрос о том, как отслеживать, какой пользователь выполняет перезагрузку или выключение системы через графический интерфейс, хочу предложить несколько подходов:

1. **Использование системных логов**:
   - Хотя ты упомянул, что графические кнопки не записывают действия в логи, стоит проверить системные логи, такие как `/var/log/syslog` или `/var/log/messages`. Иногда информация о перезагрузках и выключениях может записываться туда, включая имя пользователя, если это возможно.

2. **Конфигурация `systemd`**:
   - Если твоя система использует `systemd`, попробуй использовать `journalctl`. Выполнив команду `journalctl | grep -i shutdown`, ты сможешь просмотреть все события, связанные с выключением и перезагрузкой. В некоторых случаях здесь также будет указано, какой пользователь инициировал процесс.

3. **Создание пользовательского скрипта**:
   - Можно создать скрипт, который будет запускаться при вызове команд на выключение или перезагрузку. Например, создай скрипт в `/usr/lib/systemd/system-shutdown/` или добавь вызов к скрипту в конфигурацию `systemd`. Этот скрипт можно запрограммировать так, чтобы он записывал имя пользователя и временную метку в отдельный лог-файл.

4. **Мониторинг процессов**:
   - Также можно использовать `auditd`, чтобы отслеживать системные вызовы, связанные с выключением и перезагрузкой. Это потребует немного больше настройки, но даст тебе полную картину действий на уровне системы.

5. **Графические средства**:
   - Некоторые графические среды имеют возможность отправлять уведомления, когда кто-то инициирует перезагрузку или отключение. Вы можете поискать настройки безопасности или ведения журналов в вашем окружении рабочего стола.

Если никакой из этих методов не подойдет, возможно, стоит обратиться на более специализированные форумы по администрированию Linux. Удачи, и дай знать, если будут еще вопросы!
``` . Я ответил на ваш вопрос?

Отлично, рад слышать, что у тебя все получилось! :tada: Здорово, что мои советы оказали помощь. Если будут еще вопросы или понадобятся дополнительные рекомендации, не стесняйся обращаться! Удачи с дальнейшими задачами! :blush: . Я ответил на ваш вопрос?