Bagaimana cara membuka sesi bash penyamaran?


50

Apakah mungkin membuka sesi penyamaran bash?

Misalnya, ketika kita perlu memasukkan kata sandi dalam perintah dan tidak ingin bashmenambahkannya ke riwayat.


9
cat | bashakan menjalankan non-interaktif bashtanpa pengeditan baris perintah yang cepat (hanya editor internal disiplin baris) atau riwayat.
Stéphane Chazelas

Tulis spasi di depan perintah Anda: 'secretcommand'. Sekarang secrectcommandtidak akan berada dalam bash history.
Martin Thoma

Jawaban:


79

Saat Anda ingin bashberhenti mencatat perintah Anda, hapus saja HISTFILEvariabelnya:

HISTFILE=

Semua perintah selanjutnya seharusnya tidak lagi dicatat .bash_history.

Di sisi lain, jika Anda benar-benar memasok kata sandi sebagai argumen untuk perintah, Anda sudah melakukan sesuatu yang salah. .bash_historytidak dapat dibaca dunia dan karenanya bukan ancaman terbesar dalam situasi ini:

psdan /procmerupakan masalah besar. Semua pengguna di sistem dapat melihat perintah yang sedang Anda jalankan dengan semua argumen mereka . Melewati kata sandi sebagai argumen baris perintah karenanya tidak aman . Gunakan variabel lingkungan atau file konfigurasi (yang telah Anda buat 600) untuk memasok kata sandi dengan aman.


5
Saya telah menggunakan Linux 10+ tahun dan tidak pernah berpikir untuk melakukan ini +1
eyoung100

3
unset HISTFILEmemiliki efek yang serupa. Saya memiliki fungsi untuk ini: n() { HISTFILE=; PS1="~${PS1#\~}"; }. Dengan begitu saya bisa melihat dengan jelas apakah saya dalam "mode penyamaran" atau tidak.
Lekensteyn

13
+1 untuk mengatasi masalah sebenarnya daripada hanya menjawab pertanyaan. Opsi tambahan untuk meneruskan kredensial adalah soket domain Unix.
Nathan Osman

1
Tip lain yang bermanfaat adalah meletakkan spasi sebelum yaitu "HISTFILE =". perintah apa pun dengan spasi sebelum tidak dicatat.
FUD

Hal keren lainnya tentang ini adalah bahwa bahkan perintah sebelumnya pada jendela itu juga diabaikan. Ini seperti membalikkan sesi yang ada ke penyamaran: p
Uzumaki D. Ichigo


3

Anda dapat menonaktifkan sementara riwayat: set +o history

set +o history
...
set -o history

Ada perbedaan antara penonaktifan histori dan unsetting HISTFILE:

HISTFILE=
date
ls
HISTFILE=~/.bash_history
history

menampilkan sesuatu seperti ini:

84  HISTFILE=
85  date
87  ls
88  HISTFILE=~/.bash_history
89  history

yaitu semua perintah disimpan dalam daftar riwayat. Ketik exituntuk menyimpannya.
Tapi

set +o history
date
ls
set -o history
history

menampilkan sesuatu seperti ini:

115  set +o history
116  history

Ringkasan :
set +o historyuntuk sesi panjang.
HISTCONTROLdan <space>commanddi waktu lain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.