У меня есть Ubuntu 18.04 на моем win10, и я обычно создаю свой пароль с этой строкой кода:
echo -n "<some text generated by hand from the site's domains>" | sha256sum |cut -c-20
Но сегодня я случайно нажал Enter после команды эха.
Ubuntu сохраняет свои терминальные выводы в файле? Действительно ли я в безопасности просто использование clear
команда?
Вы парни рекомендуют лучшее решение, таким образом, мой пароль отличается друг от друга и трудно вычислить нового на основе некоторых моих других паролей?
Спасибо.
Вывод команды обычно не хранится нигде, и закрытие окна достаточно. Но сама команда хранится: в истории оболочки.
Удалить его оттуда лучше сначала закрывать все окна терминала. Обычно, история записана в файл ~/.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
достигнуть этого.