chroot ব্যর্থ - command / bin / bash 'কমান্ড চালাতে পারে না: এরকম কোনও ফাইল বা ডিরেক্টরি নেই


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)
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

দুঃখিত, টেলনেট সেশনে লগি করার জন্য পুট্টিকে ব্যবহার করা এটি একটি প্রত্নক্ষেত্র। আপনার পরামর্শ অনুসারে, প্রবেশ করা আসল কমান্ডটি ছিল সিপি / লিব 64 / লিবিডেল.সো .2 / ইউএসআর / ক্রুট / লিবি /
মাইক অ্যাটকিনসন

উত্তর:


30

ত্রুটি বার্তাটি বিভ্রান্তিমূলক : এর /bin/bash: No such file or directoryঅর্থ হ'ল এটি /bin/bashবিদ্যমান নেই বা ব্যবহৃত ডায়নামিক লোডার /bin/bashবিদ্যমান নেই। (যদি #!লাইনে দোভাষী না থাকে তবে আপনি কোনও স্ক্রিপ্টের জন্যও এই বার্তাটি পাবেন get )

/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এবং /lib64chroot মধ্যে সমতুল্য, তাই চালানো ln -s lib /usr/chroot/lib64। কেন ত্রুটি বার্তাটি সম্পর্কে bashএবং না সে সম্পর্কে ld-linux-x86-64.so.2, আমার প্রথম অনুচ্ছেদটি দেখুন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

এটি নিখুঁতভাবে কাজ করে, সময় দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ, এটি ব্যাপকভাবে প্রশংসিত!
মাইক অ্যাটকিনসন

দুর্দান্ত উত্তর। আমার ক্ষেত্রে সমস্যাটি লিংক পতাকা সংরক্ষণ না করেই
আরএসসিএন-এর

1
@ মিয়ালাইস যদি কোনও সিমিলিংক /libহয় /usr/libতবে কোনও ফাইল /usr/libরাখলে তা utsুকিয়ে দেয় /libকারণ সেগুলি একই ডিরেক্টরি! ঝোঁকের মাথায় চাকরি এ, তাই না কাজ প্রথমে কারণ লোডার বিষয়বস্তু একটি ক্যাশে রাখে করেনি /libএবং /usr/lib, এবং এটি কাজ শুরু যখন ক্যাশে পুনর্নির্মিত হয়। রানিং ldconfigক্যাশেটিকে পুনর্নির্মাণ করে এবং এটি আপনি বা স্বয়ংক্রিয়ভাবে যেমন কোনও প্যাকেজ ম্যানেজার দ্বারা করা হয়েছে যখন আপনি কোনও সফ্টওয়্যার আপডেট ইনস্টল করেছেন।
গিলস


-1

আমিও একই ত্রুটির মুখোমুখি হয়েছি। সেরা উপায় হ'ল উদ্ধার চিত্র (সরাসরি সিডি) "/" সামগ্রী এবং "/ mnt / sysimage" সামগ্রীর মধ্যে পার্থক্য খুঁজে পাওয়া।

"/" ডিরেক্টরি থেকে "/ mnt / sysimage" এ "বিন" এবং / sbin কপি করে সমস্যাটি সমাধান হয়ে গেছে যেখানে এটি দুর্ঘটনাক্রমে মোছা হয়েছিল।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.