Можно ли открыть сеанс инкогнито в bash
?
Например, когда нам нужно вводить пароли в командах и не хотим bash
добавлять их в историю.
secrectcommand
не будет в истории Bash.
Можно ли открыть сеанс инкогнито в bash
?
Например, когда нам нужно вводить пароли в командах и не хотим bash
добавлять их в историю.
secrectcommand
не будет в истории Bash.
Ответы:
Если вы хотите bash
прекратить запись ваших команд, просто удалите HISTFILE
переменную:
HISTFILE=
Все дальнейшие команды больше не должны регистрироваться .bash_history
.
С другой стороны, если вы фактически вводите пароли в качестве аргументов для команд, вы уже делаете что-то не так. .bash_history
не является общедоступным и, следовательно, не самой большой угрозой в этой ситуации:
ps
и /proc
являются большой проблемой. Все пользователи системы могут видеть команды, которые вы в данный момент выполняете, со всеми их аргументами . Поэтому передача паролей в качестве аргументов командной строки по своей сути небезопасна . Используйте переменные окружения или конфигурационные файлы (которые у вас есть chmodded 600) для безопасной подачи паролей.
unset HISTFILE
имеет аналогичный эффект. У меня есть функция для этого: n() { HISTFILE=; PS1="~${PS1#\~}"; }
. Таким образом, я ясно вижу, нахожусь ли я в «режиме инкогнито» или нет.
HISTCONTROL=ignorespace
Если эта опция еще не установлена bash
, это может быть именно то, что вам нужно. Это менее изнурительно, чем отключение всей истории. С этим набором любая командная строка, начинающаяся с символа пробела, не будет сохранена в списке истории.
Из этих ссылок:
Вы можете временно отключить историю: set +o history
set +o history
...
set -o history
Существует разница между отключением истории и сбросом HISTFILE
:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
выводит что-то вроде этого:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
т.е. все команды сохраняются в списке истории. Типа, exit
чтобы сохранить его.
Но
set +o history
date
ls
set -o history
history
выводит что-то вроде этого:
115 set +o history
116 history
Резюме :
set +o history
для длительных сессий.
HISTCONTROL
и <space>command
в другое время.
cat | bash
будет работать неинтерактивноbash
без приглашения, редактирования из командной строки (только внутренний редактор дисциплины) или истории.