Расширять функциональность таких команд, как перезагрузка, чтобы зафиксировать причину

Возможно ли расширить функциональные возможности системных команд, таких как reboot , shutdown -r now или init 6 чтобы при их выпуске пользователь должен вводить причину и другую информацию в рамках контрольного журнала? Как серверы Windows.

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

Для тех из вас, кто не знаком с Windows Servers, я потрачу минутку, чтобы объяснить сравнение. Когда Windows Server попросят выключить или перезапустить, GUI предложит пользователю указать причину запроса, который затем записывается в журнал аудита. (Это необязательно для запроса перезагрузки PowerShell (командной строки).) Кроме того, когда Windows Server запускается без причины перезагрузки, он запрашивает привилегированных пользователей по причине перезагрузки при следующем входе в систему ,


Ваше предложение возможно – до определенной степени. Вам нужно будет подумать о том, что должно произойти, если команда reboot выдается из запланированной задачи или в другое место, где не зарегистрирован административный пользователь. Вам также нужно будет подумать о том, как далеко вы захотите пойти со своим сценарием – хотели ли вы предоставить простой контрольный журнал или один запеченный настолько глубоко в систему, что он был почти невозможно обойти. Очевидно, что с последним будет увеличена стоимость.

Один из способов решения этой reboot.bin – переместить команду, например, reboot , скажем, reboot.bin . Затем создайте сценарий под названием reboot который запрашивает либо через GUI, либо в командной строке по необходимой причине и другой информации. Это будет записано через syslog в соответствующий файл журнала (возможно, auth.log ). Процесс может быть повторен для ваших других «защищенных» команд. Обратите внимание, что не будет ничего, кроме этикетки, останавливающей ваших привилегированных пользователей, запускающих реальный reboot.bin (и т. Д.) Напрямую.

Пакет molly-guard реализует это , запуская серию сценариев перед выполнением реальной команды.

Другой способ справиться с этим – взять исходный код для «защищенных» команд и расширить их изначально. Сложнее работать, и только немного сложнее обходить. (Имейте в виду, что нетрудно обойти диалоговое окно завершения работы Windows – просто используйте командную строку.)