Làm cách nào để xem lịch sử lệnh của người dùng khác trong Linux?


30

Làm cách nào để xem lịch sử lệnh của người dùng khác?

Tôi là một quản trị viên trên máy của tôi. Tôi có thể xem lịch sử bình thường bằng cách xem /home/user_name/.bash_historynhưng tôi không thể thấy các lệnh đó user_namekhi họ đang làm sudo.

Có cách nào để xem tất cả các lệnh được thực thi bởi một người dùng không?


1
Đánh cắp mật khẩu của anh ấy :) hoặc bằng kỹ thuật xã hội .. Nếu bạn không root và tài khoản của bạn được thiết lập theo cách mà bạn không thể truy cập / đọc nhà / tệp của người dùng khác mà bạn bị hạn chế khá nhiều.
người mang nhẫn

8
"Tôi là một quản trị viên trên máy của tôi."

Câu trả lời:


23

Trên các hệ điều hành dựa trên Debian, việc thực hiện tail /var/log/auth.log | grep username sẽ cung cấp cho bạn sudolịch sử của người dùng . Tôi không tin có một cách để có được lịch sử lệnh thống nhất của các lệnh + sudo bình thường của người dùng.

Trên các hệ điều hành dựa trên RHEL, bạn sẽ cần phải kiểm tra /var/log/securethay vì /var/log/auth.log.


Bất kỳ manh mối gì sẽ là trên một hệ thống centos? Máy Centos 7 của tôi không có/var/log/auth.log
Mitch

3
Hãy thử /var/log/securethay thế.
Kerin

Hoạt động hoàn hảo! Chỉ cần đưa vào yêu cầu chỉnh sửa câu trả lời của bạn
Mitch

4

Chỉ cần thử nghiệm sau đây, và nó hoạt động như một bùa mê.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history

1
Anh ấy đã nhận thức được lệnh này. Từ câu hỏi ban đầu: "Tôi có thể xem lịch sử bình thường bằng cách xem /home/user_name/.bash_history nhưng tôi không thể thấy các lệnh của" user_name "khi họ đang thực hiện sudo."
Michael Thompson

2

Nếu người dùng đưa ra một lệnh như trong sudo somecommand, lệnh sẽ xuất hiện trong nhật ký hệ thống.

Nếu người dùng sản sinh ra một lớp vỏ với ví dụ sudo -s, sudo su, sudo sh, vv, sau đó các lệnh có thể xuất hiện trong lịch sử của người sử dụng gốc, có nghĩa là, trong /root/.bash_historyhoặc tương đương.


1
Nhật ký hệ thống ở đâu?
Garrett

1

# zless /var/log/auth*là bạn của bạn ở đây Nó mở ngay cả các tập tin được nén. Bạn có thể nhảy giữa những người có :ntiến hoặc :plùi.

Ngoài ra, bạn có thể sử dụng # journalctl -f -l SYSLOG_FACILITY=10ví dụ. Tìm hiểu thêm về điều này trên wiki Arch Linux


1

sử dụng lệnh dưới đây

sysdig -c spy_users

Nếu sysdig chưa được cài đặt , hãy cài đặt tại đây


0

Có thể liên kết này có giá trị với bạn: http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

Nhưng bạn nên nhớ rằng không để lại dấu vết nào trong bash_history chỉ là vấn đề bắt đầu một lệnh với một khoảng trống, v.v. Lịch sử là một người trợ giúp, không phải là một công cụ đăng nhập.

Chúc mừng từ Đức, Daniel Leschkowski


-1

Logic áp dụng cho nhiều mục tiêu khác.
Và làm thế nào để đọc .sh_history của mỗi người dùng từ / home / filesystem? Nếu có hàng ngàn người thì sao?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

Đây là kịch bản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.