Чи можливо відкрити сеанс анонімного перегляду в 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
без підказки, редагування командного рядка (лише внутрішній редактор рядкової дисципліни) або історії.