Моя компания требует, чтобы каждый раз, когда пользователь заходил на производственный сервер, необходимо было регистрировать причину входа в систему и изменения, которые пользователь намеревается внести. Моя команда хочет сделать это, но это легко забыть. Я хотел бы помочь им вспомнить. Я считал Мотд, но хочу что-нибудь покрепче.
Моей первой мыслью было изменить оболочку пользователя на скрипт, который выполняет что-то вроде
vim /logs/logindate.txt
bash -l
Есть ли лучшая или более стандартная техника?
Примечание. Идея состоит в том, что эти пользователи являются системными администраторами и хотели бы сделать запись в журнале, не нарушая работу системы - они просто часто забывают это сделать. Так что, если они могут ctrl-c, ну ... мы предполагаем, что они не будут.
Ответы:
Посмотрите на pam_exec.so . Вы можете запустить скрипт при входе в систему в системном интерфейсе PAM. Сценарий запускается от имени пользователя root до того, как пользователь получит оболочку, поэтому он может не захватывать ввод с помощью
read
? Однако вы можете попробовать и использовать,read
чтобы получить причину от пользователя и записать ее в системный журнал сlogger
заявлением. (Я опущен ниже, но вы можете перехватить комбинации клавиш CTRL + C, чтобы запретить кому-либо выходить без причины.) $ PAM_USER будет установлен для входа в систему, так что вы можете включить это в инструкцию logger.Пример:
В верхней части сессии в /etc/pam.d/system-auth:
И / usr / local / sbin / getreason:
Извините, если это не работает идеально. Я не проверял это, но недавно сделал что-то подобное. (Это не захватило ввод.)
Изменить: Чем больше я думаю об этом, тем больше я не думаю, что это будет работать из-за стадии, на которой он работает. Тот же
getreason
сценарий должен работать после замены$PAM_USER
на$(logname)
, но может потребоваться выполнить его в/etc/profile
. (Сначала проверьте интерактивную оболочку.)Я оставлю оба варианта, так как это должно, по крайней мере, заставить вас думать в правильном направлении, если ничего больше.
источник
Альтернативой является решение для управления привилегированными учетными записями, где вместо предоставления администраторам доступа с собственной учетной записью учетные записи администраторов хранятся сторонними организациями, и перед тем, как администраторы могут получить доступ к рабочим системам, необходимо выполнить обязательные процедуры http: // en. m.wikipedia.org/wiki/Privileged_Identity_Management
источник
Другим способом достижения этой цели было бы использование централизованного средства ведения журналов (я думаю, Logstash, но вы можете сделать это и другими способами) для загрузки файла auth.log в производственных системах и передачи его в приложение, где люди могут регистрировать свои обоснования. ,
источник
Я видел, как это реализовано на клиентах, использующих HP Server Automation *, - это то, что они полагаются на встроенную регистрацию инструмента с помощью комбинации шагов утверждения (я был у нескольких клиентов, у которых нет привилегий sudo или root, кроме Dev ).
Утверждения могут быть выполнены через что-то вроде Remedy и Operations Orchestration или через административный вход в SA и т. Д.
Это все сказанное, вне автоматизации и управления предприятием средств, @ Аарон Копли «s ответ является отличным выбором.
* Я старший специалист по HPSA, HPOO и другим аспектам консультанта по комплекту автоматизации HP
источник
В поисках решения я прочитал ответ Аарона Копли и подумал: «Что если я поменяю оболочку моего пользователя?»
Я сделал это успешно на моей машине с Ubuntu 14.04:
В вашем скрипте вы можете просто зафиксировать причину логина. Мой такой:
Стоит отметить одну вещь: скрипт не запускается с правами root, поэтому вам может потребоваться предоставить пользователю некоторые разрешения, чтобы эта работа работала.
источник