Làm cách nào để nhận thông báo khi người dùng khác đăng nhập vào hệ thống của tôi.


9

Tôi biết wholệnh hiển thị cho tôi tất cả người dùng đã đăng nhập. Nhưng tôi muốn thông báo bằng cách nào đó khi ai đó trừ tôi đăng nhập vào hệ thống của tôi. Bất kỳ applet? Cũng sẽ tốt hơn nếu applet hiển thị số lượng người dùng riêng biệt đăng nhập, nghĩa là có vỏ đăng nhập và thiết lập kết nối ssh.


BTW: ai đó có thể nhận xét về phá vỡ trong các nỗ lực. Sau đó vẫn còn /etc/profile.d được thực thi? Tôi đoán nó phụ thuộc vào sự đột nhập, vì vậy đối với các cuộc tấn công ssh của lực lượng vũ phu, điều này có thể giữ được, bởi sự leo thang quyền của các dịch vụ có thể không. Ahh có vẻ như giám sát người dùng không phải là một nhiệm vụ dễ dàng.
toán

Câu trả lời:


10

Đối với phần thông báo khi ai đó đăng nhập vào hệ thống của bạn, bạn có thể thử đặt một tập lệnh nhỏ vào /etc/profile.dtập lệnh. Sử dụng notify-send (một phần của gói libnotify-bin) bạn có thể thử điều này:

/etc/profile.d/notify_log.sh

notify-send -t 3000 "User logged in" `whoami`

và sau đó, mỗi khi ai đó đăng nhập vào hệ thống của bạn, bạn sẽ được thông báo.

EDIT: Vì vậy, nó không hoạt động tốt :( Nếu bạn định cấu hình máy chủ thư trên máy của mình, bạn có thể sử dụng lệnh thư thay vì notify-send.

Nhưng theo bài đăng ở đây , giải pháp tốt hơn sẽ là một tập lệnh pam_exec .


Ý tưởng tốt, nhưng không cần phải thực hiện nó và không cần phải có shebang, vì các tệp trong /etc/profile.d/có nguồn gốc. Chỉ các shell đăng nhập (thiết bị đầu cuối ảo và đăng nhập ssh) và một số khởi tạo hồ sơ thực thi GUI.
enzotib

@enzotib: cảm ơn vì những lời khuyên, tôi đã sửa câu trả lời của mình :)
Cédric Julien

Ok, tôi đã cố gắng nhưng không có may mắn cho đến nay. Lý do là, một người dùng có thể dễ dàng thông báo cho người khác. Do đó, một số biến môi trường phải được đặt, xem: g-loaded.eu/2007/11/18/ . Cho đến nay tôi đã thực hiện được một số thứ có thể thực hiện được nhưng không phải khi tôi đăng nhập!?! Nếu tôi chỉ source /etc/profile.d/notify_log.shsau khi đăng nhập qua ssh, thông báo sẽ được gửi. Tôi đoán nó không được thực hiện đúng sau khi đăng nhập. Tôi quan sát /var/log/auth.log mà không gặp may. Có ai giúp đỡ không?
toán

Tôi đã tìm thấy lý do: Tôi sử dụng ZSH và / etc / zsh / zprofile trống, đáng lẽ nó phải là nguồn / etc / profile mà lần lượt nên nguồn /etc/profile.d/*.sh, nhưng không làm gì cả! > - (.. Tôi sẽ nguồn này một cách rõ ràng rồi và rà soát tất cả vỏ được cài đặt khác, vì tôi không biết mà vỏ đăng nhập được sử dụng bởi tất cả người dùng LDAP .. Dù sao cảm ơn.
toán

@brubelsabs: oups, tôi đã chỉnh sửa câu trả lời của mình bằng các giải pháp khác
Cédric Julien

2

Chúng tôi làm điều đó bằng cách tạo một tệp /etc/profile.d/notify.shcó nội dung sau:

#!/bin/sh

sender="hostname@example.com"
recepient="admingroup@example.com"
subject="Privileged Account logon used"
message="`env`"
    echo "$message" | mail -s "$subject" -r "$sender" -Smtp=mail.example.com "$recepient"

Giả sử mailx được cài đặt.


Có, đôi khi bạn có thể bỏ lỡ một thông báo trên máy tính để bàn, nhưng thư thường vẫn còn.
toán

@Antonio Bạn có phải thêm tập lệnh vào crontab không? Nó dường như không hoạt động.
cokedude
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.