Чи можливо відкрити сеанс анонімного перегляду в bash?
Наприклад, коли нам потрібно вводити паролі в команди і не хочемо bashдодавати їх до історії.
secrectcommandне буде в історії башу.
Чи можливо відкрити сеанс анонімного перегляду в bash?
Наприклад, коли нам потрібно вводити паролі в команди і не хочемо bashдодавати їх до історії.
secrectcommandне буде в історії башу.
Відповіді:
Коли ви хочете bashприпинити реєстрацію своїх команд, просто зніміть HISTFILEзмінну:
HISTFILE=
Після цього всі подальші команди більше не повинні реєструватися .bash_history.
З іншого боку, якщо ви фактично подаєте паролі як аргументи командам, ви вже робите щось не так. .bash_historyне читається у всьому світі і тому не є найбільшою загрозою в цій ситуації:
psі /procє великою проблемою. Усі користувачі системи можуть бачити команди, які ви зараз виконуєте, з усіма їх аргументами . Отже, передача паролів як аргументів командного рядка по суті не є безпечною . Використовуйте змінні середовища або конфігураційні файли (яких у вас було 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без підказки, редагування командного рядка (лише внутрішній редактор рядкової дисципліни) або історії.