we are sorry, we are open

11.1.2007

Избавляемся от своего следа в истории

СисАдминство — Тэги: — Админ @ 18:01:42.

Все команды, которые вы выполняли в командном интерпретаторе (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

   

Нет комментариев »

Комментариев пока нет.

Написать комментарий

Blue Captcha Image
Новый проверочный код

*

Последние комментарии:

Powered by WordPress (34 queries. 0,310 seconds)