चेरोट विफल - कमांड नहीं चला सकता `/ बिन / बैश ': ऐसी कोई फ़ाइल या निर्देशिका नहीं


16

मैं एक चाउरट नौसिखिया हूँ जो एक साधारण चिरौट जेल बनाने की कोशिश कर रहा है लेकिन मैं फिर से उसी समस्या के खिलाफ अपना सिर पीट रहा हूँ और समय फिर से ... किसी भी मदद की बड़े पैमाने पर सराहना की जाएगी

मैंने एक निर्देशिका बनाई है /usr/chrootजिसे मैं एक जेल के रूप में उपयोग करना चाहता हूं और इसके तहत उपनिर्देशिकाएं बनाई हैं और इसमें निर्भरता की प्रतिलिपि बनाई /bin/bashहै:

[root@WIG001-001 ~]# cd /usr/chroot/
[root@WIG001-001 chroot]# ls
[root@WIG001-001 chroot]# mkdir bin etc lib var home


[root@WIG001-001 chroot]# ldd /bin/bash        
linux-vdso.so.1 =>  (0x00007fff99dba000)        
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000037a2000000)        
libdl.so.2 => /lib64/libdl.so.2 (0x000000379fc00000)        
libc.so.6 => /lib64/libc.so.6 (0x000000379f800000)        
/lib64/ld-linux-x86-64.so.2 (0x000000379f400000)

[root@WIG001-001 chroot]# cp /lib64/libtinfo.so.5 /usr/chroot/lib/  
[root@WIG001-001 chroot]# cp /lib64/libdl.so.2 /udr/csr/chroot/lib/  
[root@WIG001-001 chroot]# cp /lib64/libc.so.6 /usr/chroot/lib/  
[root@WIG001-001 chroot]# cp /lib64/ld-linux-x86-64.so.2 /usr/chroot/lib/  
[root@WIG001-001 chroot]# cp /bin/bash bin  
[root@WIG001-001 chroot]# pwd  
/usr/chroot  
[root@WIG001-001 chroot]# /usr/sbin/chroot .  
/usr/sbin/chroot: cannot run command `/bin/bash': No such file or directory  


it looks like the /bin/bash created under /usr/chroot is fine as the below works:  
[root@WIG001-001 chroot]# su - nobody -s /usr/chroot/bin/bash  
-bash-4.0$ 

क्या कोई मुझे कोई विचार दे सकता है कि यहां से कहां जाना है?


यह प्रश्न में एक टाइपो या आपके द्वारा निष्पादित चरणों में त्रुटि है? cp /lib64/libdl.so.2 /udr/csr/chroot/lib/( /usrइसके बजाय होना चाहिए /udr)
अगली सूचना तक रोक दिया गया।

यह टेलनेट सत्र में प्रवेश करने के लिए पुट्टी का उपयोग करने से एक खेद है, क्षमा करें। जैसा कि आप सुझाव देते हैं, दर्ज की गई वास्तविक कमांड cp /lib64/libdl.so.2 / usr / chroot / lib /
माइक एटकिंसन

जवाबों:


30

त्रुटि संदेश भ्रामक है : /bin/bash: No such file or directoryइसका मतलब यह हो सकता है कि /bin/bashमौजूद नहीं है, या डायनेमिक लोडर द्वारा उपयोग /bin/bashनहीं किया गया है। (यदि #!लाइन पर दुभाषिया मौजूद नहीं है , तो आपको यह संदेश स्क्रिप्ट के लिए भी मिलेगा ।)

/bin/bashके लिए देख रहे हैं, /lib64/ld-linux-x86-64.so.2लेकिन आप प्रदान की है /lib/ld-linux-x86-64.so.2। या इसके विपरीत /usr/chroot/lib64एक प्रतीकात्मक बनाओ lib


क्षमा करें, मैं वास्तव में मदद की सराहना करता हूं और मुझे यकीन है कि आप सही हैं, लेकिन मैं अभी भी भ्रमित हूं! मुझे यकीन नहीं है कि आप कहां देखते हैं / बिन / बैश /lib/ld-linux-x86-64.so.2 के साथ प्रदान किया जा रहा है और मैं / usr / chroot / lib64 के रूप में मौजूद नहीं हूं। क्या आदेशों की सूची मांगना बहुत ही अजीब होगा? मैं सहानुभूति लिंक और उन्हें बनाने के तरीके को समझता हूं, लेकिन यहां जो कुछ भी हो रहा है उससे वास्तव में भ्रमित हूं और आप इसे सही करने का सुझाव दे रहे हैं। आपकी सहायता के लिए बहुत धन्यवाद!
माइक एटकिंसन

1
@ माइक: अपने cpआदेशों को देखें: आपने /lib64बेस सिस्टम से फाइलों को चिरोट में कॉपी किया /lib। लेकिन पार्टी द्विआधारी अभी भी तलाश कर रहा है ld-linux-x86-64.so.2में /lib64(जो आप नहीं बनाया है), नहीं /lib। तुम अपने आप को सिर दर्द बनाकर बचाओ /libऔर /lib64बराबर में चलाओ, तो चलाओ ln -s lib /usr/chroot/lib64। के रूप में त्रुटि संदेश के बारे में bashऔर के बारे में क्यों नहीं है ld-linux-x86-64.so.2, मेरा पहला पैराग्राफ देखें।
गिल्स एसओ- बुराई को रोकना '

यह पूरी तरह से काम करता है, समय लेने के लिए बहुत बहुत धन्यवाद, यह बड़े पैमाने पर सराहना की है!
माइक एटकिन्सन

बहुत बढ़िया जवाब। मेरे मामले में समस्या संरक्षित लिंक फ्लैग के बिना rsync के कारण हुई थी
gtsouk

1
@miyalys अगर /libकोई सिमलिंक है /usr/libतो एक फाइल को इसमें /usr/libडालता है /lib, क्योंकि वे एक ही डायरेक्टरी हैं! एक कूबड़ पर, यह पहली बार में काम नहीं किया क्योंकि लोडर की सामग्री का कैश रखता है /libऔर /usr/lib, और जब कैश को फिर से बनाया गया तो यह काम करना शुरू कर दिया। रनिंग ldconfigकैश को फिर से बनाता है, और यह आपके द्वारा या स्वचालित रूप से उदाहरण के लिए किया जा सकता है, जब आपने एक सॉफ़्टवेयर अपडेट स्थापित किया था।
गिलेस एसओ- बुराई को रोकना '


-1

मुझे भी उसी त्रुटि का सामना करना पड़ा। सबसे अच्छा तरीका बचाव छवि (लाइव सीडी) "/" सामग्री और "/ mnt / sysimage" सामग्री के बीच अंतर को खोजना है।

समस्या को "/" निर्देशिका से "/ mnt / sysimage" से कॉपी / बिन और sbin द्वारा हल किया गया जहां इसे गलती से हटा दिया गया था।

#cp -r /bin /sbin /mnt/sysimage
#reboot

-4

आप होम निर्देशिका में प्रतिलिपि .bashrc फ़ाइल की कोशिश करते हैं। और यह निश्चित रूप से मदद करेगा।


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