ত্রুটিটি ঘটেছিল কারণ আপনি যে বাইনারিটি কমান্ড লাইন থেকে কল করার চেষ্টা করছেন তা কেবলমাত্র বর্তমান ব্যবহারকারীর PATH ভেরিয়েবলেরই একটি অংশ, তবে রুট ব্যবহারকারীর পাঠের অংশ নয়।
আপনি যে বাইনারিটি অ্যাক্সেস করার চেষ্টা করছেন তার পথ চিহ্নিত করে আপনি এটি যাচাই করতে পারেন। আমার ক্ষেত্রে আমি "বেটারক্যাপ-এনজি" কল করার চেষ্টা করছিলাম। তাই আমি দৌড়েছি,
$ which bettercap-ng
output: /home/user/work/bin/bettercap
এই অবস্থানটি আমার মূল ব্যবহারকারীর PATH এর অংশ কিনা তা আমি পরীক্ষা করে দেখেছি।
$ sudo env | grep ^PATH
আউটপুট: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
সুতরাং সুডো বাইনারিটি খুঁজে পাচ্ছে না যা আমি কমান্ডলাইন থেকে কল করার চেষ্টা করছি। অতএব ত্রুটি কমান্ড পাওয়া যায়নি ফিরে।
নীচের মত বাইনারি কল করার সময় আপনি বর্তমান ব্যবহারকারীর PATH ব্যবহার করতে sudo নির্দেশনা করতে পারেন।
$ sudo -E env "PATH=$PATH" [command] [arguments]
প্রকৃতপক্ষে, এটির বাইরে একটির নামকরণ করা যেতে পারে:
$ alias mysudo='sudo -E env "PATH=$PATH"'
আসল সুডোর পরিবর্তে নিজের নামটির নাম সুডো করাও সম্ভব।
ধাপে ধাপে সমাধানের জন্য দয়া করে এই ভিডিওটি দেখুন