Собрать в истории команд всех пользователей с правами root

Вопрос или проблема

Я пытаюсь в данный момент объединить всю историю пользователей в корневую, это должно повысить безопасность.

Нам нужно увидеть, что последний пользователь выполнил или какой файл пользователь изменил.

Я пробовал многое; символьные ссылки; настраивать файл bashrc, но ничего не работает.

У кого-то есть идеи по этому поводу?

ОС: Linux CLI (интерфейс командной строки) без рабочего стола

Текущий вывод через команду history:

[root] 153  16.10.2024 13:49:55 перезагрузка
[root] 154  16.10.2024 13:51:04 history

Что мне нужно для вывода через команду history

[root] 153  16.10.2024 13:50:55 перезагрузка
[root] 154  16.10.2024 13:52:04 history
[user1] 155  16.10.2024 13:53:55 перезагрузка
[user1] 156  16.10.2024 13:54:04 history
[user2] 157  16.10.2024 13:55:55 rm file.txt
[dev2] 158 16.10.2024 13:56:04 nano /var/log/server.log

Мне нужно объединить это в обычный bashrc для root. Как я уже сказал, я пробовал создать символьную ссылку и настраивать bashrc, но ничего не дает правильного вывода. Я не могу объединить пользователей системы.

Символьная ссылка

[root] 50  16.10.2024 12:52:41 ln -s /home/user1/.bash_history /root/.bash_history

Ответ или решение

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

1. Основные параметры настройки

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

2. Конфигурация Bash для всех пользователей

Вы можете изменить настройки истории Bash для каждого пользователя следующим образом:

  1. Создайте центральный файл для истории (например, /root/all_users_history):

    touch /root/all_users_history
    chmod 600 /root/all_users_history
  2. Настройте .bashrc для каждого пользователя так, чтобы он записывал команды в созданный файл. Откройте файл .bashrc каждого пользователя и добавьте следующие строки:

    export HISTFILE=/root/all_users_history
    export HISTSIZE=2000
    export HISTFILESIZE=2000
    export PROMPT_COMMAND="history -a; history -n"
    • HISTFILE – указывает на общий файл для истории.
    • HISTSIZE и HISTFILESIZE – устанавливают размеры истории.
    • PROMPT_COMMAND – гарантирует, что команды будут записываться и обновляться корректно.
  3. Примените изменения. Каждый пользователь должен перезапустить свою сессию или выполнить:

    source ~/.bashrc

3. Использование синхронизации истории

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

echo "export HISTFILE=/root/all_users_history" >> ~/.bashrc
echo "export PROMPT_COMMAND='history -a; history -n'" >> ~/.bashrc

4. Проверка результатов

После выполнения вышеуказанных шагов, выполните несколько команд от имени различных пользователей, а затем выполните команду history от имени root:

sudo su -
history

Вы должны увидеть историю команд всех пользователей.

5. Обеспечение безопасности и доступа

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

6. Выводы

Настройка централизованной истории команд потребует некоторого административного вмешательства и предварительных настроек для каждого пользователя. Это полезный шаг для организации контроля за действиями пользователей и повышения безопасности.

Следите за изменениями в этом файле и проводите регулярный аудит, чтобы обеспечить безопасность и контроль доступа к важной информации.

Оцените материал
Добавить комментарий

Капча загружается...