डेबियन सिस्टम पर संशोधित कॉन्फ़िगर फ़ाइलों की जांच कैसे करें?


62

डिफ़ॉल्ट रूप से परिवर्तित की गई सभी डेबियन प्रबंधित कॉन्फ़िगरेशन फ़ाइलों को कैसे खोजें?


1
सवाल यहां आता है। इसका जवाब नीचे दिया गया है।
डेनिस विलियमसन

आपके द्वारा दिए गए उत्तर को मैंने आपके उत्तर में स्थानांतरित कर दिया।
ज़ॉदाचेचे

जवाबों:


78

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

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'

संपादित करें (स्थानीय सिस्टम के साथ काम करता है):

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less

संपादित करें (फ़ाइल नाम में ओके के साथ पैकेज काम करता है):

dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS="  "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK$/{print $1}' | sort | less

उबंटू 10.4 पर आकर्षण की तरह काम करता है, मैं आपको एक हजार बार उखाड़ दूंगा :-)
लुडविग वेन्ज़िएरेल 19

बहुत अच्छा काम करता है। md5sum --quietहालाँकि awk(और इस प्रकार स्थानीयकरण मुद्दे?) के साथ ठीक फ़ाइलों को फ़िल्टर करने से बचने के लिए आप उपयोग कर सकते हैं । वैसे: आपको पता नहीं है कि अनट्रैक की गई फ़ाइलों को कैसे शामिल किया जाए / आदि? उदाहरण के लिए / etc / apache2 / साइटों पर उपलब्ध लोगों की तरह?
sfussenegger

यह जानना दिलचस्प होगा कि मेरा जवाब ( debsums -ec) वास्तव में कैसे काम करता है, क्योंकि ऐसा लगता है कि इससे बहुत कम परिणाम मिले हैं।
n

इसके अलावा, जाहिरा तौर पर पैकेज संस्करणों के लिए केवल गोपनीय फाइलों की जांच की जाती है, फिर जो सामने आते हैं debsums -ec: यदि मैं इस पद्धति का उपयोग पैकेज संस्करणों को फिर से करने के लिए करता हूं , तो इस पद्धति के माध्यम से सूचीबद्ध कुछ फाइलें बदल नहीं जाती हैं।
n

एक अतिरिक्त जाँच के रूप में देखने के लिए कि कौन से विन्यास परिवर्तन लंबित या अप्रचलित हो सकते हैंfind /etc -type f \( -iname '*.ucf-dist' -o -iname '*.ucf-old' -o -iname '*.dpkg-old' -o -iname '*.dpkg-dist' \) -print | sort
sphakka

47

से man debsums:

  debsums -ce
          List changed configuration files.

1
यह अब तक का सबसे सरल और सर्वश्रेष्ठ उत्तर है।
mfisch

1
डिफ़ॉल्ट रूप से केवल डिस्बम्स स्थापित नहीं है और आप इसे स्थापित नहीं करना चाहते हैं।
एलेक्सिस विल्के जूल

1
@AlexisWilke: यह 218kb है और इसकी न्यूनतम निर्भरता है ...
n

11

Necro के लिए क्षमा करें, लेकिन जब @ naught101 का उत्तर संशोधित फ़ाइलों के लिए सही था , तो उसने जोड़ा फ़ाइलों के लिए मदद नहीं की । @ ग्रीम का समाधान अच्छा है, लेकिन एटकीपर पर निर्भर करता है; मैं फाइलसिस्टम को संशोधित नहीं करना चाहता।

find /etc -type f | grep -vFf <(debsums -e -r /etc | sed 's/[[:space:]]*OK$//')

/ Etc / कि में फ़ाइलें ढूंढें debsumsकरता नहीं के रूप में मान्य रिपोर्ट। इसका मतलब या तो अनट्रैक की गई फाइलें या फाइलें जो "ओके" नहीं हैं (हैश मैच नहीं करते हैं)।


एक debsums --list-missingया एक से अधिक पैकेजों में शामिल फ़ाइलों के चेकसम गुम नहीं होने चाहिए, यह जांचने के लिए भी चलना चाहिए । आजकल आउटपुट खाली होना चाहिए।
मिक्को रेंटालिनेन

8

मैं आमतौर पर सिस्टम पर etckeeper को बहुत तुरंत सेटअप करना पसंद करता हूं। एटकीपर जैसी किसी चीज के साथ मैं न केवल तब मिल सकता हूं जब फ़ाइल अलग है, लेकिन मैं वास्तव में वास्तव में यह कैसे अलग है का एक अंतर प्राप्त कर सकता हूं।

देख:


5

या debsums -e | grep FAILED जो सभी लापता कफील को भी दिखाएगा

(डीबसम्स पैकेज से)


2

यह ओवरकिल हो सकता है, लेकिन जब से किसी ने एटिट्यूटर का उल्लेख किया है और जब मैं जांच कर रहा था कि मैं इस अन्य मणि के पार आया हूं जो कि अधिक उपयोगी हो सकता है यदि आप "तथ्य के बाद" चीजों का पता लगाने का प्रयास कर रहे हैं।

http://devstructure.com/blueprint/

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


यदि Python-3 समर्थित है, तो उनके होमपेज (थोड़ा पुराना लग रहा है) से स्पष्ट नहीं है। क्या किसी ने कोशिश की?
शुक्रा

GitHub रेपो से पिछले कई वर्षों से सक्रिय होने का निर्णय लेते हुए मैं इस पर बहुत अधिक पैसा नहीं लगाऊंगा, जो कि बॉक्स से बाहर पायथन 3 में काम कर रहा है, लेकिन यह बहुत अच्छी तरह से लिखा हुआ लगता है, इसलिए यह Pyonon3 में जोड़ने के लिए एक बड़ी राशि नहीं हो सकती है समर्थन।
ड्रैगन 788

1

यह मूल प्रश्न से थोड़ा हटकर है कि यह संशोधित मॉडिफाइड फाइलों को भी संशोधित करेगा, जो कि संशोधित है। हालांकि किसी भी डेब्यू पैकेज में शामिल नहीं की गई फाइलें भी पकड़ी जाएंगी। दोनों व्यवहार अच्छी तरह से वांछनीय हो सकते हैं।

यह गेट गो के साथ आदर्श रूप से एटकेटर का उपयोग करने पर निर्भर करता है, क्योंकि यह विशेष रूप से काम करता है, हालांकि यह भी काम करना चाहिए यदि आप विशेष रूप से पहले प्रतिबद्ध के बाद पहले से बदल दी गई फ़ाइलों को जोड़ते हैं और करते हैं। ध्यान दें कि यहाँ एक गोत्र है कि उबंटू etckeeper को डिफ़ॉल्ट रूप से (Canonical प्रायोजक बाज़ार) बाज़ार का उपयोग करने के लिए कॉन्फ़िगर करता है, बजाय कि etckeeper Developers द्वारा निर्धारित किए गए।

यह विचार उन सभी कमिट्स की एक सूची प्राप्त करना है जो स्वचालित रूप से और उपयुक्त रन के बाद नहीं बने हैं। तब सभी में बदल गई फ़ाइलों को सूचीबद्ध करें लेकिन बहुत पहले प्रतिबद्ध:

filter_sed="/committing changes in \/etc after apt run\$/d"

etckeeper vcs log --oneline |
  sed "$filter_sed; \$d; s/ .*//" |
  xargs etckeeper vcs show --name-only --format=format: |
  sort |
  uniq |
  sed "/^\$/d"

यदि उन्हें लगातार नाम दिया जाए तो फिल्टर स्ट्रिंग को अन्य कमानों को शामिल करने के लिए भी बढ़ाया जा सकता है। डिबेट फ़ाइल या स्रोत कोड से सीधे इंस्टॉल के लिए अच्छा हो सकता है।

एक उल्लेखनीय फ़ाइल जो मेरे लिए चुनती है वह मेरी है xorg.conf- आपको वर्तमान में इसे / etc / X11 में जोड़ना होगा यदि आपको इसकी आवश्यकता है। इसके अलावा मेरे default/grubपरिवर्तन उठाए गए हैं, ऐसा लगता है कि यह एक पैकेज के भाग के रूप में सूचीबद्ध होने के बजाय पोस्ट इंस्टॉल स्क्रिप्ट द्वारा / usr / शेयर से कॉपी किया गया है। यदि इस तरह एक फाइल में बदलाव किया गया है, तो dpkg संबंधित विधियाँ इसे प्रकट नहीं करेंगी।


1
FYI करें, git logअब एक --invert-grepविकल्प है जो बिना उपयोग के निर्बाध आवागमन को फ़िल्टर करने की अनुमति देता है sed
नील मैय्यू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.