Apakah mungkin membuka sesi penyamaran bash
?
Misalnya, ketika kita perlu memasukkan kata sandi dalam perintah dan tidak ingin bash
menambahkannya ke riwayat.
secrectcommand
tidak akan berada dalam bash history.
Apakah mungkin membuka sesi penyamaran bash
?
Misalnya, ketika kita perlu memasukkan kata sandi dalam perintah dan tidak ingin bash
menambahkannya ke riwayat.
secrectcommand
tidak akan berada dalam bash history.
Jawaban:
Saat Anda ingin bash
berhenti mencatat perintah Anda, hapus saja HISTFILE
variabelnya:
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_history
tidak dapat dibaca dunia dan karenanya bukan ancaman terbesar dalam situasi ini:
ps
dan /proc
merupakan 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.
unset HISTFILE
memiliki 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.
HISTCONTROL=ignorespace
Jika opsi ini belum ditetapkan bash
, mungkin hanya itu yang Anda butuhkan. Ini kurang melemahkan daripada menonaktifkan semua riwayat. Dengan set itu, perintah apa pun yang dimulai dengan karakter spasi tidak akan disimpan ke daftar riwayat.
Dari tautan terkait ini:
Mengapa bash memiliki opsi HISTCONTROL = ignorespace?
Mengapa bash tidak menyimpan perintah yang dimulai dengan spasi?
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 exit
untuk menyimpannya.
Tapi
set +o history
date
ls
set -o history
history
menampilkan sesuatu seperti ini:
115 set +o history
116 history
Ringkasan :
set +o history
untuk sesi panjang.
HISTCONTROL
dan <space>command
di waktu lain.
cat | bash
akan menjalankan non-interaktifbash
tanpa pengeditan baris perintah yang cepat (hanya editor internal disiplin baris) atau riwayat.