ผู้ใช้ใหม่แต่ละรายที่เชื่อมต่อจะสร้างsshd
เซสชันใหม่ด้วย PID เฉพาะ คุณสามารถใช้pstree
เพื่อพิมพ์คำสั่งที่สืบทอดมาจากsshd
เซสชันใดและจากนั้นให้ตรวจสอบ PID /var/log/auth.log
นี้
ตัวอย่าง (ไม่ระบุชื่อ): ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ระยะไกลที่มี 3 เซสชันพร้อมกันโดยมีผู้ใช้ระยะไกลคนเดียวกัน ตอนนี้ผมต้องการที่จะหาที่ IP watch date
ลูกค้ามาที่วิ่งคำสั่ง
$ pstree -p | grep watch
| |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar 7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar 7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.log
pstree -p
แสดงให้เห็นว่าwatch
คำสั่งที่ได้รับมาจากsshd
กับ PID 15243 grep
ไอเอ็นจีสำหรับ PID นี้ในการ/var/auth/auth.log
แสดงให้เห็นว่ามันเป็น IP 12.34.56.78 ที่เริ่มเซสชั่นนี้ ดังนั้นนี่คือผู้ใช้ที่เริ่มต้นwatch
ด้วย
สำหรับการค้นหาhistory
เฉพาะผู้ใช้นี้มันไม่สามารถทำได้จากสิ่งที่ฉันเห็นเมื่อผู้ใช้ระยะไกลทั้งหมดกำลังใช้ผู้ใช้ SSH ท้องถิ่นเดียวกัน นอกจากนี้ยังสามารถปลอมแปลง / ปิดการใช้งาน / ฯลฯ ได้อย่างง่ายดายดังนั้นจึงไม่น่าเชื่อถือ ถ้ามันถูกบันทึกลงในไฟล์ประวัติคุณก็แค่มองหาcp
คำสั่งและมองย้อนกลับไปในไฟล์ แต่ถ้ามันไม่อยู่ตรงนั้นก็ไม่มีอะไรให้ทำอีกมาก
grep: /var/log/auth.log: No such file or directory
:-(