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.