Czy można otworzyć sesję incognito bash
?
Na przykład, gdy musimy wprowadzić hasła w poleceniach i nie chcemy bash
dodawać ich do historii.
bash
shell
command-history
privacy
Sudoer
źródło
źródło
cat | bash
uruchomi nieinteraktywnąbash
bez pytania, edycję z wiersza poleceń (tylko wewnętrzny edytor dyscypliny) lub historię.secrectcommand
nie będzie w historii bash.Odpowiedzi:
Jeśli chcesz
bash
przestać rejestrować swoje polecenia, po prostu wyłączHISTFILE
zmienną:Wszystkie dalsze polecenia nie powinny być już logowane
.bash_history
.Z drugiej strony, jeśli faktycznie podajesz hasła jako argumenty dla poleceń, już robisz coś złego.
.bash_history
nie jest czytelny na całym świecie i dlatego nie jest największym zagrożeniem w tej sytuacji:ps
i/proc
są dużym problemem. Wszyscy użytkownicy w systemie mogą zobaczyć polecenia, które aktualnie wykonujesz, wraz ze wszystkimi ich argumentami . Przekazywanie haseł jako argumentów wiersza poleceń jest zatem z natury niepewne . Użyj zmiennych środowiskowych lub plików konfiguracyjnych (które chmodded 600) do bezpiecznego dostarczania haseł.źródło
unset HISTFILE
ma podobny efekt. Mam funkcję to:n() { HISTFILE=; PS1="~${PS1#\~}"; }
. W ten sposób wyraźnie widzę, czy jestem w trybie incognito, czy nie.Jeśli ta opcja nie jest jeszcze ustawiona
bash
, może być właśnie tym, czego potrzebujesz. Jest mniej wyniszczający niż wyłączenie całej historii. Przy takim zestawie jakikolwiek wiersz poleceń zaczynający się od znaku spacji nie zostanie zapisany na liście historii.Z tych powiązanych linków:
Dlaczego bash ma opcję HISTCONTROL = ignorowanie?
Dlaczego bash nie przechowuje poleceń rozpoczynających się spacjami?
źródło
Możesz tymczasowo wyłączyć historię:
set +o history
Istnieje różnica między wyłączeniem historii a rozbrojeniem
HISTFILE
:wypisuje coś takiego:
tzn. wszystkie polecenia są zapisywane na liście historii. Wpisz,
exit
aby go zapisać.Ale
wypisuje coś takiego:
Podsumowanie :
set +o history
na długie sesje.HISTCONTROL
i<space>command
w innym czasie.źródło