W jakich sytuacjach użytkownik nie pozwoliłby powłoce zapisać swojej komendy w historii?

18

Jeśli dodać export HISTCONTROL=ignorespacew .bashrcbash nie będzie rejestrować żadnych poleceń, które mają spacje przed nimi w historii. Ale nie rozumiem, w jakich sytuacjach będzie to przydatne. Czy ktoś może podać jakieś przykłady?

Acgtyrant
źródło

Odpowiedzi:

32

Jeśli Twoje polecenia zawierają hasła lub inne poufne informacje

Ulrich Dangel
źródło
4
@ acgtyrant to nigdy nie wprowadziłeś polecenia z hasłem. Pomysł polega na tym, że jeśli podasz hasło w wierszu polecenia, po prostu umieść spację przed poleceniem i nie zostanie ono zapisaneHISTFILE
Ulrich Dangel
3
Komendy mysql mogą zaakceptować hasło użytkownika, z którym łączysz się z bazą danych, jest ich tutaj zbyt wiele. Punkt @Ulrich Dangel wykonany jest na miejscu. Jeśli wpisujesz polecenia za pomocą hasła, nie pozostawiaj ich w historii.
slm
5
Dodam również, że kiedy jesteś administratorem, często nie chcesz, aby historia była włączona, ponieważ jeśli atakujący miałby dostać się do systemu, zostawiasz mu ślad tego, co jest na pudełku i jakie typy poleceń są zazwyczaj uruchamiane na urządzeniu.
slm
1
Jeśli nie masz żadnych poleceń zawierających poufne informacje, nie jesteś docelowym odbiorcą tej funkcji. Nie każda funkcja w programie jest używana przez każdego użytkownika. (To jeden z powodów, dla których programy mają funkcję „pełzania funkcji”: każdy używa tuzina funkcji, ale inny tuzin i zastanawia się, do czego służy wszystkie inne bezużyteczne cruft).
Kaz
1
Należy pamiętać, że argumenty wiersza polecenia są często widoczne w pslub podczas przeglądania /proc. Niektóre systemy sprawiają, że środowisko jest widoczne również dla innych użytkowników. Plik trybu 0700 w tmpfs, OTOH, nie ma tych problemów.
derobert
26

Innym zastosowaniem są polecenia, których nie chcesz przypadkowo powtórzyć, takie jak rm -rf *. W dużym stopniu korzystam z historii i czasami uderzam Enterprzypadkowo, gdy polecenie, które odzyskałem z historii, nie jest tym, którego szukałem. To prawda, że ​​prawdziwym rozwiązaniem jest zawsze uważne czytanie poleceń przed ich wykonaniem. Ponieważ jednak jestem trochę niezdarny, wolę też zachować szczególnie niszczycielskie polecenia z mojej historii jako dodatkowe środki ostrożności.

depquid
źródło
14
Chciałbym dodać, że było to bardzo wygodne, aby dalej ignorować pewne niebezpieczne polecenia nawet jeśli zapomnę zawierać spacji: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Zapobiega to zapisywaniu rm -fi rm -rzapisywaniu w historii, a także wszystkiego, co zawiera --force.
Petr Pudlák
To jest / prawdziwe rozwiązanie. Nie zostawiaj noży w pobliżu, mówiąc, że prawdziwym rozwiązaniem jest nie szturchanie się nimi. Zgodnie ze starym przysłowiem „nie można oderwać się w rzece” - co oznacza, że ​​nie należy czyścić rzeki, zamiast przestać wrzucać do niej śmieci.
ctrl-alt-delor
6

Mój były współpracownik robił to z większością poleceń cdi ls, aby nagrywać tylko „przydatne” polecenia.

Jan Fabry
źródło
3
Prawie nigdy nie prowadzę nethacka w pracy bez robienia tego ... (albo top, albo mężczyzna ...)
LottoOre
Faktycznie, ktoś może dodać export HISTCONTROL=ingoredupsw .bashrcpowiedzieć bash nie do przechowywania duplikatów więc tworzyć historię bardziej wyraźne. Możesz przeczytać ten artykuł
zatwierdzony
2

Prywatność danych. Gdy tylko organy ścigania wyłamią twoje drzwi, możesz nie chcieć, aby znaleźli pozostałości

  • skąd wget najnowszy zaimek ^ Wwarez
  • jakie filmy ostatnio zgrałeś i nakarmiłeś torrentem
  • hasła przekazywane za pomocą argumentów do programów szyfrujących / deszyfrujących

Poważnie, prawdopodobnie jest to odpowiednik ścisłego ustawienia prywatności w przeglądarce, uniemożliwiając zapisywanie historii surfowania.

Jens
źródło
0

Jeśli kontrolujesz wersję .hash_history , jest to przydatny sposób na oznaczenie niektórych poleceń jako „specjalnych”. W połączeniu z wyszukiwaniem historii- * jest to sposób na naciśnięcie Space+ m+ Up+, Enteraby uruchomić make --directory ~/dev/tilde cleani Space+ e+ Up+, Enteraby uruchomić editor ~/.bash_history, z których oba używam do zarządzania plikiem historii Bash.

l0b0
źródło