Tôi muốn sửa đổi cài đặt lịch sử cho tất cả người dùng trên các hệ thống mà tôi quản lý. Tôi muốn nó chứa thông tin từ thiết bị đầu cuối kết nối như từwho
sysadmin:/ # who
sysadmin pts/0 Mar 26 07:11 (sysadmin.doofus.local)
Tôi hiện đang sửa đổi lịch sử của mình theo những cách sau. Tôi biết rằng nhiều trong số các cài đặt này đã được đề cập ở đây nhiều lần. Tuy nhiên, tôi đã lấy mã này từ " Công thức quản trị hệ thống Linux của: Juliet Kemp " từ lâu.
shopt -s histappend
PROMPT_COMMAND='history -n;history -a'
HISTSIZE=100000
HISTFILESIZE=100000
HISTTIMEFORMAT="%m/%d/%y %T "
shopt -s histappend
khắc phục sự cố khi bạn có nhiều thiết bị đầu cuối mở thông tin có thể bị mất.
PROMPT_COMMAND='history -n;history -a'
mở rộng để cung cấp thêm thời gian thực vào lịch sử trên nhiều thiết bị đầu cuối.
HISTSIZE=100000
HISTFILESIZE=100000
kéo dài thời gian history
duy trì
HISTTIMEFORMAT="%m/%d/%y %T
"mở đầu cho mỗi dòng lịch sử bằng dấu thời gian
Những gì bạn thường nhận được với history
835 ls
836 cd ..
history
Kết quả hiện tại đã sửa đổi của tôi
5853 03/26/12 07:16:49 ls
5854 03/26/12 07:16:50 ll
Sự trở lại từ history
tôi muốn xem
5853 03/26/12 07:16:49 sysadmin.doofus.local ls
5854 03/26/12 07:16:50 sysadmin.doofus.local ll
001 03/26/12 05:11:29 demo_user.doofus.local cd
002 03/26/12 05:11:30 demo_user.doofus.local ll
Tôi không "kết hôn" để nhìn thấy DNS
tên. Tôi chỉ muốn nó ở đó nếu nó kéo nó từ who
hoặc một vị trí khác mà không cần phải thực hiện tra cứu hoặc truy vấn dưới bất kỳ hình thức nào. Tôi sẽ rất vui với địa chỉ IP.
002 03/26/12 05:11:30 192.168.0.2 ll
Tại sao? Tôi quản lý một số hệ thống trong đó một userid mà một số người dùng cùng nhóm chia sẻ để thực hiện các nhiệm vụ hàng ngày của họ. Điều này sẽ cho phép tôi tương quan vị trí thực tế & người dùng thực tế của họ trong tổ chức với những gì họ đã làm trong lịch sử.
Tôi biết rằng điều này là không tối ưu và muốn thay đổi nó, nhưng, khi bạn đang ở trên một con tàu có kích thước của một tàu du lịch, bạn không cố gắng thực hiện lần lượt kẹp tóc. (Lưu ý: khi bạn làm hành khách cố gắng ném bạn quá mức)
Dù sao, cho đến khi tôi có thể di chuyển chúng sang một giải pháp tốt hơn, tôi muốn có khả năng theo dõi này.
Ngoài ra, nếu bạn có bất kỳ đề xuất nào về những gì tôi hiện đang sử dụng cho các history
sửa đổi của mình, tôi rất muốn nghe nó.
Cảm ơn,
Chỉnh sửa: 1
Tôi không muốn chạy các chương trình khác hoặc phải định cấu hình bất cứ điều gì bổ sung "trong lý do."
Tôi muốn thêm 0
chi phí, nếu tôi phải thêm nó cần phải nhỏ.
Tôi tin tưởng người dùng của mình, tôi chỉ muốn (nếu có chuyện gì đó xảy ra) để xem ai trong số 10 người dùng đã đăng nhập vào hệ thống có cùng người dùng: mật khẩu đã làm điều đó. Hoặc, nó có thể không phải là người dùng mà nó có thể bị lãng quên cron
trên một hệ thống thực hiện kết nối với tư cách là người dùng để làm gì đó. Hoặc một ứng dụng Ex: BMC Control-M
kết nối ssh
và chạy các tác vụ. Nó không phải là quá nhiều về việc tìm kiếm "người dùng xấu" như có thể theo dõi nó với nỗ lực tối thiểu.
Chỉnh sửa 2:
Các hệ thống đang chạy SLES và RHEL
/proc
/dev
và /home
thư mục người dùng . Điều này thêm chi phí. Trong khi đó history
đã được ghi lại và thông tin kết nối của họ được biết đến với hệ thống kết nối IP, v.v ... Thông tin này nếu không có sẵn "tĩnh" có thể được đặt theo cách đó hoặc được lưu trữ trong một biến hoặc tệp và nhập vào history
bản ghi và nhấn hiệu suất sẽ rất nhỏ hoặc 0.
auditd
. Tôi không chắc nếu nhật ký của nó sẽ cung cấp cho bạn đủ thông tin. Khó khăn của những gì bạn muốn là chính xác lý do tại sao các tài khoản được chia sẻ quá nhiều.
auditd
giống như inotify
bạn phải nói với nó những gì cần theo dõi để thay đổi. Các tệp, thư mục riêng lẻ, v.v. Tôi không muốn đi đến mức cấu hình đó. Thực tế (tôi làm) nhưng về cơ bản là không quan tâm lắm. Tôi phải puppet
xử lý những thứ đó. auditd
đi kèm với tải bổ sung và thời gian để thiết lập là tốt. Nếu một tài khoản đang sửa đổi một cái gì đó tôi vẫn muốn nhìn lại lịch sử và xem ai hoặc cái gì đang đăng nhập và thử.
PROMPT_COMMAND=
chỉ chạy các lệnh bình thường trước dấu nhắc tiếp theo, bạn không thể viết hàm gọi sed / awk hoạt động trên dòng cuối cùng của tệp lịch sử để thêm thông tin. sau đó gọi hàm đó vào PROMPT_COMMAND=
để nối thêm dữ liệu? Nó sẽ là hackish nhưng nên làm công việc.