Có thể mở một phiên ẩn danh trong bash
?
Ví dụ: khi chúng ta cần nhập mật khẩu vào các lệnh và không muốn bash
thêm chúng vào lịch sử.
secrectcommand
sẽ không có trong lịch sử bash.
Có thể mở một phiên ẩn danh trong bash
?
Ví dụ: khi chúng ta cần nhập mật khẩu vào các lệnh và không muốn bash
thêm chúng vào lịch sử.
secrectcommand
sẽ không có trong lịch sử bash.
Câu trả lời:
Khi bạn muốn bash
dừng ghi nhật ký các lệnh của mình, chỉ cần bỏ đặt HISTFILE
biến:
HISTFILE=
Tất cả các lệnh tiếp theo sẽ không còn được đăng nhập .bash_history
.
Mặt khác, nếu bạn thực sự cung cấp mật khẩu làm đối số cho các lệnh, thì bạn đã làm sai điều gì đó. .bash_history
không thể đọc được trên thế giới và do đó không phải là mối đe dọa lớn nhất trong tình huống này:
ps
và /proc
là vấn đề lớn Tất cả người dùng trên hệ thống có thể thấy các lệnh bạn hiện đang chạy với tất cả các đối số của họ . Do đó, việc truyền mật khẩu dưới dạng đối số dòng lệnh là không an toàn . Sử dụng các biến môi trường hoặc tệp cấu hình (mà bạn đã biên dịch 600) để cung cấp mật khẩu an toàn.
unset HISTFILE
có tác dụng tương tự. Tôi có một chức năng cho việc này : n() { HISTFILE=; PS1="~${PS1#\~}"; }
. Bằng cách đó tôi có thể thấy rõ mình có đang ở "chế độ ẩn danh" hay không.
HISTCONTROL=ignorespace
Nếu tùy chọn này chưa được đặt bash
, nó có thể chỉ là những gì bạn cần. Nó ít gây suy nhược hơn là vô hiệu hóa tất cả lịch sử. Với bộ đó, bất kỳ dòng lệnh nào bắt đầu bằng ký tự khoảng trắng sẽ không được lưu vào danh sách lịch sử.
Từ các liên kết liên quan:
Bạn có thể tạm thời vô hiệu hóa lịch sử: set +o history
set +o history
...
set -o history
Có một sự khác biệt giữa vô hiệu hóa lịch sử và bỏ đặt HISTFILE
:
HISTFILE=
date
ls
HISTFILE=~/.bash_history
history
xuất ra một cái gì đó như thế này:
84 HISTFILE=
85 date
87 ls
88 HISTFILE=~/.bash_history
89 history
tức là tất cả các lệnh được lưu trong danh sách lịch sử. Nhập exit
để lưu nó.
Nhưng
set +o history
date
ls
set -o history
history
xuất ra một cái gì đó như thế này:
115 set +o history
116 history
Tóm tắt :
set +o history
cho các phiên dài.
HISTCONTROL
và <space>command
vào thời điểm khác.
cat | bash
sẽ chạy không tương tácbash
mà không cần nhắc nhở, chỉnh sửa dòng lệnh (chỉ là trình chỉnh sửa nội bộ của dòng kỷ luật) hoặc lịch sử.