Избавляемся от своего следа в истории
Все команды, которые вы выполняли в командном интерпретаторе (shell) на своей юниксовой машине, сохраняются в файле истории. То же самое делает и файл-менеджер типа MC или deco. Даже все ваши действия с базой данных MySQL, которые вы производили через утилиту mysql, сохраняются в файле истории.
В подобном файле истории может сохраниться много интересного для хакера, вплоть до паролей пользователей базы данных. А к тому же, по-умолчанию, права файлов и директорий позволяют читать их всем. Короче говоря, я считаю, что за собой всю эту историю надо подчищать, даже если вы сделали свою домашнюю папку недоступной для других пользователей.
Первое что приходит в голову это удалить файл и сделать линк на /dev/null, что я и делал некоторое время. Но тут был подводный камень, о котором я не подумал. Периодически я, для профилактики, меняю права на свою домашнюю папку рекурсивно — отменяю права на всё для других пользователей. Так иногда я делаю это из-под рута, что приводит к смене прав и на сам файл устройства /dev/null, на который указывает линк в моей домашней папке. А потом я озадачивался сообщениями различных программ о недостаточности прав доступа к /dev/null.
Второй вариант, используемый мной, заключается в прописывании команд на очистку файлов истории в файл, который выполняется при выходе из шела, например ~/.bash_logout для bash:
> ~/.bash_history > ~/.Deco/.decohist > ~/.mysql_history > ~/.mc/history
Метод универсальный — можно сделать что хочешь. Из недостатков только то, что пока не вышел из шела история всё же накапливается в файле.
Третий вариант — с точки зрения логики наиболее правильный — чем бороться с содержимым файла, лучше настроить софт так, чтобы он не вёл эти файлы. Для интерпретатора bash можно указать переменную окружения HISTFILE равную /dev/null, MySQL проверяет переменную окружения MYSQL_HISTFILE. Добавляем в файл ~/.bash_profile строки для изменения этих переменных:
export HISTFILE=/dev/null export MYSQL_HISTFILE=/dev/null
Пример относится к интерпретатору bash, которым я пользуюсь. Для интерпретатора csh (tcsh), который во ФриБСД назначен руту по-умолчанию, для изменения значения переменной окружения можно добавить в файл ~/.tcshrc строку вида:
setenv histfile /dev/null setenv MYSQL_HISTFILE /dev/null
20070111