Я случайно набрал свой пароль в командной строке bash, ошибочно приняв Last login: ...
строку за Wrong password
(я спешил). Что я делаю, чтобы скрыть мой след?
То, что я сделал, отредактировало .bash_history
и удалило нарушающую строку (пришлось повторно войти в систему, чтобы увидеть, как пароль появился в файле, чтобы я мог удалить его, и снова войти в систему, чтобы увидеть, как он исчезает из истории, доступной под клавишей UPARROW).
Есть ли другое место, где можно сохранить историю команд? Система CentOS 6.5.
linux
command-line
bash
centos
Мада
источник
источник
/dev/null
.ssh-keygen -f id_rsa -p
.Ответы:
Вы можете удалить только оскорбительную строку из
bash
истории, вместо очистки всей истории. Просто удалите строку с-d
флагом, затем сохраните (запишите) новую историю с-w
флагом:источник
Есть две части к этому:
bash
хранит историю в файле,~/.bash_history
который по умолчанию записывается в конце сеансаhistory
что хранится в памятиЧтобы быть в безопасности, вы должны очистить его от сессии:
и обрежьте файл истории при необходимости:
Если ваша сессия, в которой вы ввели пароль, все еще открыта, то другой способ скрыть вашу трассировку - установить
HISTFILE
переменную в нулевое устройство, чтобы история не была записана~/.bash_history
при выходе из сессии:источник
shred
перезаписать файл или иным образом перезаписать его много раз?HISTFILE=
достаточно. Frombash(1)
: Если не установлено, история команд не сохраняется при выходе из оболочки.Поскольку bash (по крайней мере, все известные мне исторические и текущие версии) не сохраняет автоматически историю до тех пор, пока вы не выйдете, общеприменимой стратегией, когда вы набрали команду, которую вы хотите гарантировать, чтобы она никогда не сохранялась, является:
Это убивает оболочку
SIGKILL
, которая не может быть перехвачена, поэтому оболочка не может сохранить что-либо при выходе.Большинство других подходов включают очистку по факту (т.е. после того, как данные уже попали на диск), что имеет гораздо больше шансов на ошибку (пропуская копию), особенно если система может использовать btrfs или аналогичные.
источник
rm ~/.bash_history~
чтобы удалить файл резервной копии в случае ОП, когда он уже был сохраненПосле того, как вы случайно набрали что-то, что не хотели сохранять в истории, вы можете набрать:
unset HISTFILE
Bash не будет знать, где хранить историю, когда вы выходите из системы, поэтому фактически это отключит ведение журнала истории для всего сеанса.
источник
Мой любимый трюк для этого - нажимать стрелку вверх, возвращать команду назад, вводить что-то (может быть и не нужно), нажимать стрелку вниз, вводить «ls» и нажимать ввод. Чувствую себя очень странно, но на самом деле это работает. Об этом узнал, когда я раздражался после того, как отредактировал неправильную команду в своей истории, а затем разрушил ее, не нажимая ctrl-c, чтобы отменить редактирование. Я думаю, Bash поддерживает ревизионистскую историю. ;-)
Выглядит как:
источник
В дополнение к другим ответам, может быть уместно, что пароль также находится в буфере прокрутки терминала - история отображаемого текста - теперь, и, более проблематично, возможно, на жестком диске, если эмулятор терминала действительно сохранил история на диск. Это происходит в KDE konssole, если размер истории установлен на «неограниченный прокрутку», чтобы никогда не отбрасывать вывод.
источник
С
$<space> command
, команда не добавляется в историю, иногда полезноисточник
ps
.Еще одна альтернатива, чтобы избежать сохранения в файл истории (перед выходом из системы), это просто
а затем выйти из системы. Остановите запись истории в файл (поскольку файл доступен только для чтения), так что весь сеанс bash удаляется, а предыдущая история сохраняется.
Войдите снова и сбросьте права доступа
600
(или нет, в зависимости от того, какой вы параноик!).источник
Я вижу неоднократно упоминалось
Первая часть определенно верна, но вам не нужно прибегать к ручному редактированию .bash_history, чтобы это исправить. Если вы объединяете две команды в одну строку, это прекрасно работает:
источник
Многие ответы здесь пытаются удалить указанную команду из истории текущего сеанса bash, прежде чем она будет записана
$HISTFILE
(по умолчанию ~ / .bash_history). Однако, если вы установилиPROMPT_COMMAND=history -a
команду с вашим паролем, он сразу же записывается в ваш,$HISTFILE
когда приглашение отображается после завершения команды. Вам придется отредактировать свой,$HISTFILE
чтобы удалить его.Этот параметр обычно используется для чередования команд из нескольких открытых сеансов bash .
источник
Вы также захотите проверить журналы системного журнала. Неверные имена входа обычно регистрируются в системном журнале.
/ var / log / messages или эквивалент для вашей ОС.
источник