क्या मैं vi गतिविधि लॉग इन कर सकता हूं?


10

क्या vi गतिविधियों को लॉग करने की कोई विधि है? मुझे संदेह है कि कोई अन्य उपयोगकर्ता vi संपादक के अंदर शेल में जाकर कमांड जारी कर रहा है, जाहिर है कि वे कमांड इतिहास में रिकॉर्ड नहीं करते हैं।

जवाबों:


6

आप प्रक्रिया लेखांकन चालू कर सकते हैं (s / can / should /!)

आप तब उपयोग कर सकते हैं:

lastcomm(1)

कमांड रन देखने के लिए और यदि वे एक कांटा के बाद, एक निष्पादन के साथ या बिना चलाए गए थे।

एक मेजबान आधारित आईडी के साथ संयुक्त यह आपको वह देना चाहिए जो आपको "राजा के न्याय उस पर हो सकता है।"


लेखांकन के बारे में अच्छे बिंदु के लिए +1।
फिल होलेनबैक

7

आप अभी उनकी गतिविधियों को कैसे लॉग इन कर रहे हैं? सबसे आसान उन्हें vi से गोले लॉन्च करने से रोकना है।

# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc

यदि आप उनके आदेशों को लॉग करने के लिए एक विशेष शेल का उपयोग कर रहे हैं, तो आप केवल उस शेल का उपयोग करने के लिए vi बदल सकते हैं।


Vi पहुंच को प्रतिबंधित करने के लिए एक अच्छे सरल तरीके के लिए +1।
फिल होलेनबैक

2
लेकिन बाईपास करना आसान लगता है: "vim -u / dev / null"।
22

हां, यह अनिवार्य रूप से एक अनसुलझी समस्या है। किसी को लॉगिन के माध्यम से आपके सिस्टम तक पहुंचने में मिनट, वे मशीन को हटा सकते हैं। आप जो सबसे अच्छा कर सकते हैं, वह वास्तव में कठिन है।
फिल होलेनबैक

4

क्या आप शेल इतिहास के बारे में बात कर रहे हैं? vi शेल मोड ( :sh) उपयोगकर्ता के डिफ़ॉल्ट शेल को लॉन्च करता है यदि वह बैश है तो आप यह सुनिश्चित कर सकते हैं कि इतिहास लॉगिंग हमेशा वैश्विक / etc / bashrc और जोड़कर सक्षम किया जाता है:

set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'

यह सुनिश्चित करेगा कि प्रत्येक उपयोगकर्ता कमांड एक फ़ाइल में लॉग इन हो जाए, यह ओवरराइट नहीं किया जाता है, और शेल प्रॉम्प्ट दिखाई देने पर यह हर बार अपडेट हो जाता है।

ध्यान दें कि उपयोगकर्ता इसे अपने व्यक्तिगत में ओवरराइड कर सकते हैं, ~/.bashrcइसलिए यह पूर्ण गारंटी नहीं है कि लॉगिंग होगा।

Vi के कुछ संस्करण (जैसे nvi) एक सुरक्षित मोड का समर्थन करते हैं जो vi के रूप में शुरू करने के माध्यम से शेल एक्सेस को अक्षम करता है nvi -S। आप /etc/bashrcडिफ़ॉल्ट रूप में भी इस मोड को बाध्य करने के लिए एक वैश्विक उपनाम सेट कर सकते हैं ।

ध्यान दें कि सामान्य तौर पर अप्रत्याशित साधनों के माध्यम से शेल के लिए उपयोगकर्ताओं की समस्या एक क्लासिक यूनिक्स समस्या है। इसे पूरी तरह से अक्षम करने का कोई तरीका नहीं है, आप जो सबसे अच्छा कर सकते हैं वह डिफ़ॉल्ट रूप से पहुंच को सीमित करने का प्रयास है। एक परिष्कृत उपयोगकर्ता (या यहां तक ​​कि एक उपयोगकर्ता जो Google का उपयोग करना जानता है) हमेशा इन प्रतिबंधों के आसपास मिल सकता है। उदाहरण के लिए यदि कोई उपयोगकर्ता अपने शेल इतिहास को लॉग इन नहीं करना चाहता है, तो वह हमेशा शेल की एक नई कॉपी को क्रियान्वित कर सकता है, जो भी विकल्प वह उपयोग करना चाहता था।

यहाँ कैसे बैश में लॉगिंग को मजबूर करने के लिए और लॉगिंग को दरकिनार किया जा सकता है के तरीके का एक शानदार लेखन है।

अंत में, क्या आपने उपयोगकर्ता से बात करके यह निर्धारित करने के लिए विचार किया है कि वे क्या कर रहे हैं? समय के 99% सरल मौखिक संचार किसी भी भ्रम को साफ कर सकते हैं। यदि आप इस उपयोगकर्ता की गतिविधि को लॉग इन कर रहे हैं क्योंकि आप उन पर भरोसा नहीं करते हैं, तो शायद आप उनसे अपनी चिंताओं के बारे में बात कर सकते हैं।

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