Я хотел знать, есть ли какой-либо механизм, когда пользователь устанавливает / удаляет любой пакет с помощью sudo. Он генерирует электронную почту и отправляет ее на адрес электронной почты root.
Я использую centos 6.4 и обычно устанавливаю пакет через yum или путем прямой установки (rpm).
1 ответ
На этот вопрос сложно ответить, так как вы не сообщили нам свой дистрибутив или какой менеджер пакетов вы используете. Есть несколько способов сделать это, один из которых превращает ваш менеджер пакетов в функцию. Я буду использовать apt-get
в качестве примера.
Переименуйте исполняемый файл apt-get
:
sudo mv /usr/bin/apt-get /usr/bin/apt-get.bin
Создайте небольшой скрипт-обертку, который вызывает apt-get
а затем отправляет электронное письмо:
#!/bin/sh
./apt-get.bin "$@" && echo "User $SUDO_USER ran 'apt-get $@'" |
sendmail root@foo.com
Сохраните приведенный выше скрипт как /usr/bin/apt-get
и сделайте его исполняемым:
sudo chmod a+x /usr/bin/apt-get
Теперь, каждый раз, когда пользователь успешно запускает apt-get
, электронное письмо будет отправлено на root@foo.com
.
Это не самый элегантный способ, и его легко можно обойти пользователем, вызывающим apt-get.bin
напрямую, но он может удовлетворить ваши потребности. Также не поможет, если пользователь установит пакет из исходного кода или использует aptitude
или dpkg
напрямую.