जवाबों:
मैं उत्सुक था अगर chmod 000 /
काम करेगा।
खैर, निर्दोष। कुछ मिनट बाद मैं एक बचाव सीडी की खोज कर रहा था।
जब मैंने पहली बार विश्वविद्यालय के लिए एक उपयोगकर्ता सलाहकार के रूप में काम करना शुरू किया था, जिसमें मैं भाग ले रहा था, मुझे sudo
उन छात्रों की मदद करने के लिए सीमित अधिकार दिए गए थे जो अपने पासवर्ड को खो चुके थे / भूल गए थे। sudo passwd <username>
मेरा नया दोस्त था। उन्मुखीकरण के एक घंटे बाद, मेरी जिज्ञासा ने मुझे बेहतर बना दिया और मैंने sudo passwd
एक नया पासवर्ड के लिए संकेत दिया और हॉरर में टाइप किया । मैं ^C
अपने रास्ते से थोड़ा डर गया था , सोच रहा था (पूरी तरह से, यह पता चला है) कि मैं एक क्षणिक स्थिति में सवाल में खाता छोड़ सकता हूं, इसलिए मैंने एक पासवर्ड दर्ज किया और तुरंत ऊपर की ओर चला गया 2 मंजिल के हॉल वाले डोमेन पर कैंपस सुपरयूजर और पूछा कि क्या वह मुख्य प्रणाली का रूट पासवर्ड जानना चाहते हैं।
passwd
रूट के रूप में चलाने पर अजीब व्यवहार करता है। उदाहरण के लिए, टाइपो जांच में विफल होने पर, यह फिर से पूछता है।
हैरानी की बात है किसी और ने अभी तक इसका उल्लेख नहीं किया है:
rm -rf .*
(सभी छिपी हुई फ़ाइलों और उपनिर्देशिकाओं को हटाने का प्रयास करते समय, पूरी तरह से यह भूल जाते हैं कि यह फिर से शुरू हो जाएगा ) .
और..
rm
ऐसा नहीं करेंगे। मैंने डार्विन पर कोशिश की और त्रुटि मिली rm: "." and ".." may not be removed
।
.
और ..
उपयोग के लिए सभी dotfiles मैच करना चाहते हैं .[^.]*
। (ठीक है, यह वास्तव में सभी फाइलों को याद करना शुरू कर देगा ..
, लेकिन आमतौर पर केवल एक ही होता है।)
.??*
, जो मुझे टाइप करना आसान लगता है। यह एक दो-अक्षर डॉट फ़ाइलों की तरह मेल नहीं खाएगा .a
, लेकिन वे भी असामान्य हैं। मैं अपने घर निर्देशिका में विन्यास फाइल को grep -r .??*
उदाहरण के लिए खोजता हूं ।
makefile:
clean:
@rm -f * .o
जो, ज़ाहिर है, make clean
सिर्फ ऑब्जेक्ट फ़ाइलों के बजाय आपके स्रोत कोड को मिटा देता है ।
पाठ: संस्करण नियंत्रण का उपयोग करें।
*
और.o
एक दोस्त :() { :|:&}; :
एक रिमोट सर्वर पर चलता था जहाँ हमारे पास कंसोल एक्सेस नहीं था। इसे रिबूट नहीं किया जा सकता है, पूरी तरह से जमे हुए, उत्पादन सर्वर ।
इसे थोड़ा और पठनीय बनाने के लिए (अनुरोध से) टूट गया।
:() # Define ':' as a function. Every time we say ':' execute the following code block
{ # Start of code block
: # Call ':' again.
| # Pipe output to...
: # Another ':'
& # Disown process.
# All on one line this would read :|:&,
} # End of code block
; # End definition of ':' as a function
: # Call ':'
इसे देखना आसान हो सकता है
bomb() { bomb|bomb& }; bomb
:
यह कुछ नहीं करता है। और यह बिल्कुल भी मेमोरी का उपयोग नहीं करता है, बस बहुत सारे कांटे लगाता है। [हाँ, मैंने यह कोशिश की :)]। प्रभाव प्रति उपयोगकर्ता प्रक्रियाओं पर कोटा के साथ अवरुद्ध किया जा सकता है।
मेरा मतलब अच्छी तरह से था, मैंने वास्तव में किया। chmod
एक निर्देशिका पुनरावृत्ति करने की कोशिश कर रहा है और ./
साथ स्वैपिंग समाप्त हो गया है /
।
जड़ के रूप में, क्योंकि केवल जड़ के साथ ही सच्चा दर्द हो सकता है (और इस प्रकार आत्मज्ञान) प्राप्त किया जा सकता है।
मैंने अपनी मुख्य ड्राइव की विभाजन तालिका को दुर्घटना से मिटा दिया, यह सोचकर कि मैं दूसरे ड्राइव पर काम कर रहा हूं।
स्क्रॉलबैक के साथ df
, मेमोरी, और भाग्य का सावधानीपूर्वक उपयोग मैं इसे फिर से बनाने में सक्षम था, इसे फिर से लिखना, रिबूट और आशा करना ... और यह काम किया।
dd
पाइप किए गए प्रत्येक सिलेंडर के पहले 4k ब्लॉक को पढ़ने के साथ एक बैश लूप का उपयोग किया file -
। यह एक लाइव सीडी पर था और हमें जो कुछ भी करने की ज़रूरत थी वह सब करने के लिए पर्याप्त रैम नहीं था (जिसमें एक पैकेज या दो को स्थापित करना शामिल था) इसलिए हमने दूसरी मशीन पर ssh में चल रही प्रक्रिया में पाइप किया।
sfdisk -O
विभाजन तालिका का बैकअप लेने के लिए हमेशा उपयोग करता हूं । FYI करें: cgsecurity.org/wiki/TestDisk स्वचालित कर सकता है जो @Neil Mayhew ने किया है।
testdisk
gpart
ऐसी चीजें हैं , जो फाइल सिस्टम से मिलती-जुलती हैं और उसी से पार्टीशन टेबल का निर्माण करती हैं।
वास्तव में मेरा पल नहीं, लेकिन किसी और का।
जब मैंने एक परमाणु विज्ञान अनुसंधान सुविधा में काम किया, तो हम कई SunOS, Ultrix और Linux कंप्यूटर चलाते थे और शोधकर्ताओं को उन मशीनों पर CPU साझा करना पड़ा। जैसा कि अलग-अलग अनुसंधान समूहों को अपने स्वयं के अनुसंधान अनुदान मिले, उन्होंने अपने स्वयं के कंप्यूटर खरीदे, ज्यादातर स्पार्कस्टेशन और उन्होंने स्वयं सिस्टम प्रशासन किया।
SunOS OpenView डेस्कटॉप और एक अच्छा फ़ाइल प्रबंधक के साथ जहाज करता था, यह वही है जो ऐसा दिखता था:
हमारे अधिकांश शोधकर्ता रूट के रूप में चल रहे थे, और एक से अधिक बार हमें उनके ऑपरेटिंग सिस्टम को फिर से स्थापित करना पड़ा क्योंकि किसी ने रूट निर्देशिका को साफ-सुथरा बनाने और / बिन, / आदि, / tmp और बाकी सभी चीजों को देखने का फैसला किया था, जो या तो दृश्य को अव्यवस्थित कर दिया। Trashcan या कुछ सबफ़ोल्डर।
अन्य उपयोगकर्ताओं ने / बिन निर्देशिका को साफ करने और ऐसी किसी भी कमांड को हटाने का विकल्प चुना जिसे वे नहीं जानते थे।
भाग्यशाली लोगों के पास बैक अप था, अधिकांश ने एक टेप ड्राइव खरीदा था, लेकिन स्वयं बैकअप चलाने की परंपरा नहीं थी।
90 के दशक के उत्तरार्ध में, मेरा एक दोस्त और मैं एक मूर्खतापूर्ण चर्चा कर रहे थे rm -rf *
और किस बिंदु पर एक लिनक्स बॉक्स पेट ऊपर जाएगा। हम वैधानिक रूप से जुड़े बनाम गतिशील रूप से जुड़े पुस्तकालयों में शामिल हो गए और मैंने कहा कि सिस्टम बिना अच्छी तरह से रह सकता है /lib
और फिर इसे अपने कार्यस्थान पर नाम बदलने के लिए आगे बढ़ा। बुरी चीजें हुईं , लेकिन हमें कई खुली कंसोल खिड़कियों के साथ छोड़ दिया गया, जिनके साथ क्षति को ठीक करने की कोशिश की गई (शटडाउन अब कोई विकल्प नहीं था)। कोई भी संपादक नहीं चलता। यह अद्भुत है कि गूढ़ उपयोग आप echo
कमांड के लिए पा सकते हैं ।
vi
तथा Caps-Lock बनाम/etc/passwd
su -
vi /etc/passwd
। कोई भी नहीं है vipw
, और "हम सिर्फ मामूली संपादन कर रहे हैं" वैसे भी।मैंने एक बार ऐसा किया था। आश्चर्यजनक रूप से, सिस्टम महीनों तक कार्यशील रहा। Cronjobs ठीक चला, कोई त्रुटि लॉगफ़ाइल्स में नहीं हुई।
जब तक हमने सिस्टम महीनों बाद रिबूट नहीं किया और कंसोल में लॉग इन नहीं कर सका, तब तक हमें यह समस्या नहीं हुई। ps
यूआईडी '0' के स्वामित्व वाली नौकरियों का एक गुच्छा दिखाया गया है, उपयोगकर्ता 'रूट' द्वारा नहीं।
आप रूट के रूप में लॉग इन नहीं कर सकते, न ही चला su
सकते हैं और न ही इस बॉक्स पर su -
कोई है sudo
। कोई फ्लॉपी ड्राइव नहीं था, सीडी-रोम का भंडाफोड़ हुआ था और कोई यूएसबी पोर्ट (कोई बाहरी सीडी-रोम) नहीं था। एकल उपयोगकर्ता मोड काम नहीं करता था, क्योंकि आपको रूट के लिए पासवर्ड टाइप करना पड़ता है, और यह आता है /etc/passwd
।
rm -f * ~
तथा
rm -rf ${DIR}/
जब DIR
सेट नहीं किया गया था!
${DIR}
? क्योंकि $(DIR)
DIR कमांड को निष्पादित करने का प्रयास करेगा।
एक सरल halt
कुछ सेकंड के बाद पहचान कि मैं एक स्थानीय शेल पर नहीं हूं और फिर से उत्पादन सर्वर पर बिजली की कोई संभावना नहीं है।
सीख सीखी? मशीन का संकेत अब जैसा दिखता है
[ --> root <-- @kompost:/home/echox] #
कुछ अच्छे लाल मार्कअप के साथ ;-)
molly-guard
कि क्या आप दूरस्थ रूप से लॉग इन हैं और पूछते हैं कि क्या आप वास्तव में ऐसा करना चाहते हैं।
मेरा पसंदीदा क्षण था, जब एक सहकर्मी, जो एक इमैक उपयोगकर्ता है, एक महत्वपूर्ण फाइल को संपादित करना चाहता था।
क्योंकि emacs
टाइप करने के लिए बहुत अधिक है कि उसने एक उपनाम सेटअप किया था emacs
:
alias em=emacs
पर्याप्त या बहुत अधिक कॉफी के प्रभाव में वह निश्चित रूप से गलत टाइप किया गया em
...
खैर, यह सिर्फ एक और कारण है vi
...;)
alias e=emacs
।
या एक और अनुभव, कुछ आसान चरणों में वास्तव में बेवकूफ कैसे महसूस करें जो व्यक्तिगत रूप से वह सब बेवकूफ नहीं लगता है।
चरण एक: बच्चे के लिए एक खाता स्थापित करें, अगर वह लिनक्स बॉक्स का उपयोग करना चाहता है। इसे एक तुच्छ पासवर्ड दें, क्योंकि यह सब एक होम सिस्टम है और नेट के संपर्क में नहीं आता है।
दो कदम: समय बीतने की अनुमति दें, तो आपको चरण एक याद नहीं है।
चरण तीन: एसएसएच पोर्ट को फ़ायरवॉल (वास्तव में राउटर पर एनएटी) को खोलने के क्रम में खोलें। आखिरकार, मेरे खातों में बहुत अच्छे पासवर्ड हैं, और ऐसा नहीं है कि बहुत मूल्यवान है।
चरण चार: आईएसपी से अधिसूचना प्राप्त करें कि किसी प्रकार की डॉस गतिविधि स्वीडिश साइट पर जा रही है। मान लें कि यह संभवतः विंडोज बॉक्स है, और उन्हें जांच और कठोर करें।
चरण पांच: आईएसपी से सूचना प्राप्त करें कि यह अभी भी चल रहा है। कुछ विस्तार से पूछें, स्वीडिश साइट का आईपी पता प्राप्त करें, विंडसर्क फायर करें, यह पता करें कि हमला किस बॉक्स से हो रहा है।
चरण छह: लिनक्स बॉक्स को साफ करें, बेवकूफ लग रहा है। पता लगाएं लॉगिन एक रोमानियाई पते से आया है। अच्छे पासवर्ड के बिना खाते निकालें।
जब मैं कॉलेज में था तब कंप्यूटर लैब में, उनके पास एक स्क्रीन सेवर था जो गेंदों के एक झुंड का अनुकरण करता था जो आगे और पीछे तैरते थे। उन्होंने नकली गुरुत्वाकर्षण के साथ प्रत्येक पर खींच लिया।
एक बार, जब मैं सेटिंग्स के साथ गड़बड़ कर रहा था, यह त्रुटि के साथ दुर्घटनाग्रस्त हो गया Error: force on balls too great
मैं एक बार यूनिक्स के लिए एक डिवाइस ड्राइवर विकसित कर रहा था। यह एक सूचक समस्या थी और परीक्षण के दौरान यह कर्नेल मेमोरी में एक सरणी के अंत को लिखना शुरू कर देता है। मैं यह देख पाने के लिए धीमा था और तुरंत रीसेट बटन नहीं मारा। ड्राइवर ने डिस्क बफर कैश पर सभी स्क्राइब किया था जो कि मैंने रीसेट करने से पहले डिस्क को फ्लश कर दिया था। बहुत सारे ब्लॉक इनोड और निर्देशिका थे, और मैं पूरी तरह से ट्रैश किए गए फाइल सिस्टम के साथ समाप्त हुआ। मुझे लगता है lost+found
कि मेरे द्वारा दिए गए और पुनर्स्थापित होने से पहले 6000 अनाथ फाइलें डाल दी गई थीं । सौभाग्य से, यह केवल एक परीक्षण प्रणाली थी, इस पर मेरी सभी फाइलों के साथ मेरा कार्य केंद्र नहीं।
मैंने डिलीट / आदि किया और फिर उसे रिकवर किया । मुझे नहीं लगता कि मैंने अपना सबक सीखा है ... मुझे हटाए गए से /bin
भी उबरना होगा । ऐसा लगता है जब मैं एक के साथ काम कर रहा हूँ chroot
।
पिछले साल, मेरा एक सहयोगी dd
कमांड का उपयोग करके फ्लैश डिस्क की प्रतियां बनाने के लिए हमारे एक लिनक्स वर्कस्टेशन का उपयोग कर रहा था। उसने गलती से निम्नलिखित के समान कुछ टाइप किया:
dd if=flash-image.img of=/dev/sda1
जब तक उन्हें अपनी गलती का एहसास हुआ - फ्लैश ड्राइव के बजाय मशीन की हार्ड डिस्क को ओवरराइट कर दिया - मशीन पहले से ही hosed थी। हमें बॉक्स का पुनर्निर्माण करना था, जो संयोगवश उस समय हमारे विकास वीएम के सभी को होस्ट करने वाली मशीन भी थी ...
dd
!!! :-)
यह मेरे साथ पिछले साल हुआ था। मैं अस्थायी चर का उपयोग करके सर्वर से कुछ फाइलें निकाल रहा था:
rm -rf ${prefix}*
अंदाज़ा लगाओ? चर $prefix
को परिभाषित नहीं किया गया था!
आप आपदा की कल्पना कर सकते हैं ... इसके परिणामस्वरूप कुछ बहुत ही महत्वपूर्ण फाइलें नष्ट हो गईं।
मैंने लगभग Control-Cनेटवर्क केबल को हटाने के लिए सीपीयू को तोड़ दिया और भाग गया !!
हाहाहा मुझे यकीन है कि किसी ने पहले ही यह कर लिया था ...
कंप्यूटर विज्ञान के अध्ययन के मेरे 2 वें वर्ष में, हमें C में एक प्रोग्राम लिखने के लिए एक होमवर्क असाइनमेंट दिया गया था जिसमें कई सबप्रोसेस के साथ स्पॉन होगा fork
एक "सर्कल" में पाइप के साथ संवाद करने और उन्हें बनाने जो "लीडर" होना चाहिए "।
हम तब भी काफी नॉब वापस थे और अधिकांश पेप्ले में कोई लिनक्स मशीन नहीं थी, इसलिए हमने अपने खातों में अपने संकाय के मुख्य सर्वर (जो आधिकारिक साइट और स्टाफ खातों और साइटों को भी होस्ट कर रहा था) पर काम किया। अधिकांश लोगों ने होमवर्क करने की कोशिश के कुछ चरणों में forkbombs लिखा। मेरे आधे से अधिक समूह abusers
फ़ाइल में आ गए। यह उस सर्वर पर उच्चतम लोड समय में था :)
जब मेरे विश्वविद्यालय ने मालिकाना सिस्को LEAP प्रमाणीकरण का उपयोग करने के लिए वायरलेस नेटवर्क स्विच करने का निर्णय लिया ...
बहुत लंबी लड़ाई शुरू की जो काफी अच्छी तरह से समाप्त हुई। उन अन्य लोगों के लिए प्रलेखन लिखा, जो लिनक्स चलाना चाहते थे और इंटरनेट तक पहुंच रखते थे। छह महीने बाद उन्होंने पीईएपी समर्थन को भी जोड़ने का फैसला किया। थप्पड़
यह मेरा पसंदीदा है क्योंकि मैं जीत गया। मुझे यह काम करने के लिए मिला है।
मैं लिनक्स क्लास के लिए लैब असिस्टेंट था। छात्रों में से एक ने मुझे बुलाया क्योंकि वह अब नहीं रह सकती su -
थी क्योंकि वह मिल रही थी permission denied
। ठीक है, उसने पासवर्ड गलत / गलत लिखा है। एकल-उपयोगकर्ता मोड में रीबूट करें और रीसेट करें। क्या?! su
अभी भी काम नहीं करता है ?! यह मेरी इच्छा के आगे झुकना चाहिए! इसलिए मैंने यह पता लगाने के लिए एकल उपयोगकर्ता मोड में रीबूट किया कि उसने क्या किया। मुझे एहसास हुआ कि वह भागा हैchmod -R 777 /var/www/html/drupal-6.19 /
निर्देशिका नाम और अंतिम स्लैश के बीच की जगह पर ध्यान दें।
"मैं वास्तव में उसे फिर से स्थापित नहीं करना चाहता, इसलिए यह क्या कर रहा है और कैसे करना है" के कुछ मिनटों के बाद, मैंने पाया कि बिन / सु अब फ़ाइल की अनुमति थी 777
। यह फ़ाइल अनुमतियों के रूप में भी पढ़ा जा सकता है 0777
, जो सेट्यूड बिट को हटा देता है /bin/su
। एक त्वरित chmod u+s /bin/su
और मैं एक नायक था।
ऐसा नहीं हैदर्दनाक ... लेकिन एक छोटा सा पल:
मैं ग़लत टाइप किया ls
के रूप मेंsl
और पता चला कि सिस्टम प्रशासक था कुछ इस तरह के मामले के लिए स्थापित किया।
(पहले से ही डेबियन , उबंटू , जेंटू , ... रिपॉजिटरी में उपलब्ध है)
git init
git clean -f
यह भंडार को दूर नहीं करता है। यह वह सब कुछ हटा देता है जो रिपॉजिटरी में नहीं है।
(पर मौजूदा रेपो से छुटकारा पाने के लिए और फिर स्रोत नियंत्रण फिर से शुरू की कोशिश के बाद पूरा एक परियोजना के पहले संस्करण), इन दो आदेशों अपने पूरे कोड nuked।
जिस कंपनी के लिए मैं काम करता था, उसका उत्पाद SCO पर चल रहा था। मैं अपने डेमो सर्वर पर बहुत धीमी गति से हो रहे अनुप्रयोगों के बारे में कुछ डिबगिंग कर रहा था और साथ ही आने वाले नए फीचर्स के बारे में ग्राहकों को एक डेमो / व्याख्यान दिया जा रहा था।
इसलिए, मैंने उस एप्लिकेशन को चलाया जो अटक जाता था, मूल कारण को सत्यापित करने के लिए उस पर मेरा सामान था, लेकिन चूंकि यह अभी भी "अटक गया था", मैंने इसे मारने की कोशिश की:
pkill -9 mytestapplication
मैंने जो सीखा वह यह था कि pkill SCO पर ठीक वैसा ही नहीं करता जैसा कि linux = पर होता है।
... यह मूल रूप से उपयोगकर्ता की पहुंच और रूट के साथ सब कुछ को मारता है ... यही सब कुछ है =)
डेबियन से उबंटू में मेरे स्विच ने उस दिन की शुरुआत की जब मैंने टाइप करने के लिए कुछ फाइलों और निर्देशिकाओं को हटाने की कोशिश की
rm -r /var/tmp/*
दुर्भाग्य से, मैंने "/ var / tmp /" और "*" के बीच एक स्थान डाला और इससे भी बदतर, मैं फाइलसिस्टम की जड़ में था।
root@workstation:/# rm -r /var/tmp/ *
कृपया घर पर कोशिश न करें!
मेरे पास एक बिंदु पर दो ड्राइव स्थापित थे और दूसरी ड्राइव के रूट फाइलसिस्टम के भीतर एक डायरेक्टरी में आरोहित था /mnt
। मैं उस निर्देशिका में था और हटाने की कोशिश की var
लेकिन rm -rf /var
इसके बजाय टाइपिंग समाप्त कर दी । कुछ वृत्ति में यह लग रहा था कि कहा जाता है कि एक स्लैश से पहले var
होना चाहिए!
जब मुझे महसूस हुआ कि मैंने जो किया है, मैं तुरंत हिट हो जाऊंगा, Ctrl-Cलेकिन तब तक बहुत देर हो चुकी थी। मेरा rpm
डेटाबेस लंबे समय से इमारत से बाहर था। मैंने सारी उम्र सामान्य होने पर वापस बिताई।
अब दर्द वाले हिस्से के लिए।
मैं उस निर्देशिका में वापस जाता हूं /mnt
हूँ जो मैं कर रहा था। मैं क्या टाइप करता हूँ? ठीक है, चलो बस कहते हैं कि वृत्ति फिर से लात मारी।
कम से कम मैं दूसरी बार बहुत जल्दी सिस्टम को पुनर्स्थापित करने में सक्षम था;)
rm
कमांड शामिल है । या दुखी है।