В этой статье мы рассмотрим, как полностью отключить системное логирование в Linux (в том числе /var/log, journald и историю команд bash).
Если вы попробуете запретить запись в директорию /var/log с помощью атрибута chmod 000
, это поможет только до перезагрузки хоста. После чего Linux сам вернет права на директорию 755.
Можно включить запрет на изменение директории с помощью атрибута chattr +i:
$ sudo chattr +i /var/log
После перезагрузки процессы Linux не смогут писать в директорию /var/log будет пусто. При этом при установке пакетов через менеджер apt будут появляться различные ошибки (можно исправить, добавив в apt.conf.d параметр:
Dir::Log "/yourpath"
Однако вы все еще можете просматривать логи, которые пишутся системой и приложениями через systemd:
$ journalctl -f
Чтобы отключи логи journalctl, откройте /etc/systemd/journald.conf и добавьте:
Storage=none
Очистите системный журнал Linux:
$ sudo journalctl --rotate && sudo journalctl --vacuum-time=1s
Перезапустите службу и удалите оставшиеся логи:
$ sudo systemctl restart systemd-journald
$ rm -R /run/log/journal/*
$ sudo rm -R /var/log/journal/*
Если выполнить команду:
$ journalctl -f
Она вернет:
No journal files were found
Если на вашем хосте Linux установлен rsyslog, его нужно также отключить:$ sudo systemctl stop rsyslog
$ sudo systemctl disable rsyslog
Теперь нужно очистить историю .bash_history:
$ cat /dev/null > ~/.bash_history
$ sudo chattr +i ~/.bash_history
$ history -c && history -w``
Либо вы можете добавить в .bashrc строку:
HISTSIZE=0