очистите терминальные критические выводы

У меня есть Ubuntu 18.04 на моем win10, и я обычно создаю свой пароль с этой строкой кода:

echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20 

Но сегодня я случайно нажал Enter после команды эха.

Ubuntu сохраняет свои терминальные выводы в файле? Действительно ли я в безопасности просто использование clear команда?

Вы парни рекомендуют лучшее решение, таким образом, мой пароль отличается друг от друга и трудно вычислить нового на основе некоторых моих других паролей?

Спасибо.

3
задан 31 August 2018 в 19:18

1 ответ

Вывод команды обычно не хранится нигде, и закрытие окна достаточно. Но сама команда хранится: в истории оболочки.

Удалить его оттуда лучше сначала закрывать все окна терминала. Обычно, история записана в файл ~/.bash_history когда оболочка закончится, и непосредственно управление файлом не поможет, потому что это перезаписывается на выход оболочки. Существуют способы настроить history по-другому, но самое легкое должно просто закрыть все окна терминала.

Теперь откройте одно новое окно терминала и тип

history

или

history | grep echo

Демонстрационный вывод:

...
2007  echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20 
2008  echo -n "secret" | sha256sum |cut -c-20 
2009  echo -n "secret"
2010  history

Здесь Вы видите, что не только "злонамеренная" команда хранится, но также и "корректная". Можно удалить его с

history -d 2009

где 2009 число в первом столбце. Изменение это соответственно. Теперь:

history
...
2007  echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20 
2008  echo -n "secret" | sha256sum |cut -c-20 
2009  history
2010  history -d 2009
2011  history

Для будущего Вы могли бы хотеть снабдить префиксом Ваш echo … | sha256sum … с пространством, т.е.

_echo -n "secret" | sha256sum |cut -c-20   # The '_' indicates a leading space

Таким образом, полная команда не будет зарегистрирована в истории. Поведением управляет переменная HISTCONTROL (man bash):

HISTCONTROL

Разделенный от двоеточия список управления значений, как команды сохраняются на списке предыстории. Если список значений включает ignorespace, строки, которые начинаются с пробела, не сохраняются в списке предыстории. Значение ignoredups строки причин, соответствующие предыдущей записи истории, которая не будет сохранена. Значение ignoreboth сокращение от ignorespace и ignoredups.

Можно хотеть добавить export HISTCONTROL='ignoreboth' к Вашему ~/.bashrc достигнуть этого.

3
ответ дан 1 December 2019 в 16:17

Другие вопросы по тегам:

Похожие вопросы: