किसी अन्य उपयोगकर्ता द्वारा निष्पादित लिनक्स शेल कमांड का लाइव दृश्य?


27

क्या लिनक्स में मूल उपयोगकर्ता के लिए टर्मिनल या एसएसएच के माध्यम से लॉग इन किए गए किसी अन्य उपयोगकर्ता द्वारा चलाए जा रहे शेल कमांड का वास्तविक समय (या वास्तविक समय के करीब) होना संभव है? जाहिर है कि वे .bash_history में संग्रहीत हैं, लेकिन यह केवल तभी सहेजा जाता है जब उपयोगकर्ता लॉग ऑफ करता है और उसे अक्षम भी किया जा सकता है।

संपादित करें: आदर्श रूप से कुछ ऐसा जिसे आसानी से चालू और बंद किया जा सकता है।


ttyrpldअच्छा दिखता है। इस सवाल में सिफारिश की। serverfault.com/questions/40011/…
हैलसी

जवाबों:


16

जड़ के रूप में, आप उनके शेल को एक साधारण आवरण स्क्रिप्ट से बदल सकते हैं जो वास्तविक शेल पर जाने से पहले उनकी कमांड लॉग करती है। यह केवल उन्हें लॉग इन करने से पहले काम करेगा।


20
हमने पिछले नियोक्ता पर हैक किए गए खाते की निगरानी करने के लिए ऐसा किया था। "/ बिन / बैश" (अंतरिक्ष को नोटिस करें) जो स्क्रिप्ट-कमांड के चारों ओर एक आवरण था। एक आकर्षण की तरह काम किया :)
कमांडर कीन

बहुत चालाक! +1
ईएमपी

9

उपयोग घमंडी आप उपयोगकर्ता के सत्र में या तोड़ने के लिए चाहते हैं, तो screen -xअगर आप सहयोग किया है।

हालांकि जागरूक रहें, कि आपके उपयोगकर्ताओं की जासूसी आपके स्थानीय कानून के आधार पर नियमों के अधीन हो सकती है या एकमुश्त अवैध भी हो सकती है।


7

शेल को बदलने के लिए बहुत तुच्छ है, शेल को पैच करना बेहतर है, लेकिन आपको सभी शेल को पैच करना होगा। हमारा पसंदीदा क्रैकर इसका उपयोग करता है, एक बोनस के रूप में वह bash_history को अक्षम करने से खुद को परेशान नहीं करता है।

ssh host /bin/sh -i  

Snoopy निष्पादन कार्यों के आसपास एक आवरण है, और निष्पादित किए गए किसी भी बाहरी बाइनरी को लॉग करता है (शेल बिल्ड नहीं)

@ डेविड शमित के सुझाव सूँघने के लिए एक बेहतर विधि का उपयोग किया जाता है, यह स्यूडोटर्मिनल को टैप करता है।

ttysnoop एक ही विधि का उपयोग करता है, लेकिन यह अस्वीकार्य है। (मैं शायद यह मुद्दों को लॉग इन ssh कनेक्शन बना रहा था, याद नहीं कर सकते हैं)

आप सत्र को लॉग करने के लिए पैचिंग ssh आज़मा सकते हैं , लेकिन वह पैच पुराना है

pseudopod और rooth का उपयोग वैध सूडोस को लॉग करने के लिए किया जा सकता है। और shwatcr लॉगिन को मॉनिटर करने के लिए एक और चीज है।


वास्तव में क्या ssh host /bin/sh -iकरना चाहिए?
माइक पेनिंगटन

स्नूपी के लिए +1 सही नहीं है, लेकिन हमें वही करना चाहिए जो हमें करने की आवश्यकता है।
स्किनप

4

यदि आप सहयोगी हो रहे हैं, तो आप दो उपयोगकर्ताओं के बीच जीएनयू स्क्रीन का उपयोग कर सकते हैं - एक स्क्रीन सत्र की स्थापना करता है, तो दूसरा उपयोग कर रहा है screen -x

यदि आप अपने ज्ञान के बिना अन्य उपयोगकर्ताओं पर "जासूसी" करने के लिए रूट चाहते हैं, तो सबसे अच्छा और सबसे कुशल समाधान keylogger सॉफ्टवेयर / हार्डवेयर हो सकता है।


4

Sysdig सिस्टम-स्तरीय अन्वेषण का शक्तिशाली उपकरण है - यह वही है जो आप चाहते हैं;)

उदाहरण:

sysdig -i spy_users

श्रेणी: सुरक्षा

spy_users इंटरैक्टिव उपयोगकर्ता गतिविधि प्रदर्शित करें

प्रत्येक कमांड को सूचीबद्ध करता है जो उपयोगकर्ता अंतःक्रियात्मक रूप से लॉन्च करते हैं (जैसे bash से) और प्रत्येक निर्देशिका उपयोगकर्ता पर जाते हैं


2

आप बैश-BOFH पैच आज़मा सकते हैं। पैच के लिए चारों ओर खोजें।


1

मैंने एक पैच या एक विशेष निष्पादन योग्य उपकरण का उपयोग किए बिना सभी 'बैश' कमांड / बिल्ड को एक पाठ-फ़ाइल या 'syslog' सर्वर में लॉग इन करने के लिए एक विधि लिखी।

इसे तैनात करना बहुत आसान है, क्योंकि यह एक सरल शेलस्क्रिप्ट है जिसे 'बैश' के आरंभ में एक बार कहा जाना चाहिए।

यहाँ विधि देखें: http://blog.pointoftware.ch/index.php/howto-bash-audit-command-logger


सर्वर दोष में आपका स्वागत है! हम वास्तव में पसंद करते हैं कि उत्तर में सामग्री है, सामग्री के लिए संकेत नहीं। यह सुनिश्चित करता है कि लिंक मृत होने पर भी उत्तर उपलब्ध रहेगा। जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
user9517

सर्वर दोष में आपका स्वागत है! कृपया विशेष रूप से हमारे faq को पढ़ें क्या मैं उन उत्पादों या वेबसाइटों का प्रचार कर सकता हूं जो मैं यहां से संबद्ध हूं?
user9517

1
function spy() { 
   ptsnum=`ps awfux | grep pt[s]\/"$1" | awk '/bas[h]/{print $2}'` ; 
   /usr/bin/strace -s 1000 -t -f -p $ptsnum 2>&1 3>&1 \
        | grep -Poi 'write\(...\"[[:print:]]{1,2}\"[.][.][.][,]..\)' ; 
}

[436] klikevil@epiphany ~ $ w<br>
 09:36:43 up 12:06,  6 users,  load average: 0.46, 0.29, 0.20<br>
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT<br>
klikevil pts/0    75.125.126.8     23:05    2:19m 10:33   0.18s cmd                                      <br>
klikevil pts/1    75.125.126.8     00:18    6:50m  0.06s  0.04s sshd: klikevil [priv]<br>
klikevil tty7     :0               09:02   17:07m  2:02   0.32s x-session-manager<br>
klikevil pts/2    :0.0             09:03    3:30   0.08s  0.08s bash<br>
klikevil pts/3    :0.0             09:03    0.00s  0.76s  0.00s w<br>
klikevil pts/4    :0.0             09:06    3:13   0.46s  0.00s /bin/sh /usr/bin/thunder<br>
[437] klikevil@epiphany ~ $ spy 2<br>
write(2, "e"..., 1)<br>
write(2, "c"..., 1)<br>
write(2, "h"..., 1)<br>
write(2, "o"..., 1)<br>
write(2, " "..., 1)<br>
write(2, "s"..., 1)<br>
write(2, "u"..., 1)<br>
write(2, "p"..., 1)<br>
write(2, " "..., 1)<br>
write(2, "d"..., 1)<br>
write(2, "o"..., 1)<br>
write(2, "g"..., 1)<br>
write(2, "\n"..., 1)<br>
^C<br>

अगर आप लाइन ब्रेक का एक गुच्छा के माध्यम से छँटाई नहीं करते हैं तो बहुत अच्छा लगता है।


1

Snoopy हल्के कमांड लॉगिंग के लिए अभिप्रेत है।

यदि आप अपने सिस्टम पर निष्पादित कमांड का लाइव दृश्य चाहते हैं, तो यह हो सकता है। चेतावनी: स्नूपी उचित ऑडिट समाधान नहीं है और इसे आसानी से दरकिनार किया जा सकता है।

हालांकि, यदि आप टर्मिनल में टाइप किए गए हर चरित्र को देखना चाहते हैं, तो आपको एक अन्य टूल का उपयोग करना होगा।

प्रकटीकरण: मैं वर्तमान स्नूपी मेंटेनर हूं।


-3

इस निर्यात को आज़माएं HISTTIMEFORMAT = "% T" कुछ कमांड चलाएं और बाद में "इतिहास" ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.