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 bashthêm chúng vào lịch sử.
secrectcommandsẽ 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 bashthêm chúng vào lịch sử.
secrectcommandsẽ không có trong lịch sử bash.
Câu trả lời:
Khi bạn muốn bashdừng ghi nhật ký các lệnh của mình, chỉ cần bỏ đặt HISTFILEbiế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_historykhô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:
psvà /proclà 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 HISTFILEcó 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 historycho các phiên dài.
HISTCONTROLvà <space>commandvào thời điểm khác.
cat | bashsẽ chạy không tương tácbashmà 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ử.