कनेक्ट करने वाला प्रत्येक नया उपयोगकर्ता sshd
एक विशिष्ट PID के साथ एक नया सत्र बनाता है। आप pstree
प्रिंट करने के लिए उपयोग कर सकते हैं कि कौन से कमांड किस sshd
सत्र से विरासत में मिले हैं , और फिर इस पीआईडी को क्रॉस चेक इन करें /var/log/auth.log
।
उदाहरण (अज्ञात): मैंने एक ही दूरस्थ उपयोगकर्ता के साथ 3 सर्वरों के साथ एक दूरस्थ सर्वर में लॉग इन किया। मैं अब यह पता लगाना चाहता हूं कि कौन सा आईपी क्लाइंट आया जो कमांड को चलाता है 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
विशेष रूप से इस उपयोगकर्ता के लिए खोजने के लिए, यह वही नहीं किया जा सकता है जो मैं देख सकता हूं जब सभी दूरस्थ उपयोगकर्ता एक ही स्थानीय एसएसएच उपयोगकर्ता का उपयोग कर रहे हैं। इसके अलावा, यह आसानी से खराब / निष्क्रिय / आदि हो सकता है, इसलिए यह वास्तव में विश्वसनीय नहीं है। यदि इसे इतिहास फ़ाइल में सहेजा गया है, तो आप बस cp
कमांड को देख सकते हैं और फ़ाइल में पीछे की ओर देख सकते हैं, लेकिन यदि यह नहीं है, तो बहुत कुछ करने के लिए नहीं है।
grep: /var/log/auth.log: No such file or directory
:-(