Chi tiết về các lệnh sudo được thực thi bởi tất cả người dùng


10

Từ nhật ký này tôi có thể nhận thông tin chi tiết về các lệnh sudo được thực thi bởi bất kỳ người dùng nào. Nó nên chứa thư mục làm việc, lệnh, người dùng. Sẽ rất hữu ích nếu bạn có thể cung cấp cho tôi một kịch bản shell để làm như vậy

Câu trả lời:


23

Tùy thuộc vào bản phân phối của bạn; đơn giản:

$ sudo grep sudo /var/log/secure

hoặc là

$ sudo grep sudo /var/log/auth.log

cung cấp cho:

Nov 14 09:07:31 vm1 sudo: pam_unix(sudo:auth): authentication failure; logname=gareth uid=1000 euid=0 tty=/dev/pts/19 ruser=gareth rhost=  user=gareth
Nov 14 09:07:37 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/yum update
Nov 14 09:07:53 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/grep sudo /var/log/secure

Người dùng chạy lệnh là sau sudo:- garethtrong trường hợp này.

PWD là thư mục.

USERlà người dùng garethđang chạy như - roottrong ví dụ này.

COMMAND là lệnh chạy.

Do đó, trong ví dụ trên, garethđược sử dụng sudođể chạy yum updatevà sau đó chạy ví dụ này. Trước đó anh gõ mật khẩu không chính xác.

Trên các hệ thống mới hơn:

$ sudo journalctl _COMM=sudo

cho một đầu ra rất giống nhau.


0

Một "bộ lọc kết quả" cho giải pháp của Gareth. (đối với những người đến theo tiêu đề của bài viết, không mô tả)

Cung cấp cho bạn một danh sách sạch các lệnh chỉ, chạy như sudo, bởi tất cả người dùng.

$sudo journalctl _COMM=sudo  | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'

Giải pháp thay thế nếu sed không có sẵn

$sudo journalctl _COMM=sudo | grep COMMAND

Kết quả C & P vào các trang tính của Google

Trong ô B1 C & P công thức này

=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))
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.