আমি একটি উদ্ভট সিম্পল শেল ইস্যু পেয়েছি, $ PATH- র একটি কমান্ড সহ যে শেলটি (ksh, লিনাক্সে চলমান) কাপুরুষোচিতভাবে প্রার্থনা করতে অস্বীকার করেছে। কমান্ডটি পুরোপুরি যোগ্যতা ছাড়াই পেলাম:
# mycommand
/bin/ksh: mycommand: not found [No such file or directory]
তবে ফাইলটি এটি দ্বারা পাওয়া যাবে:
# which mycommand
/home/me/mydir/admbin/mycommand
আমি সেই ডিরেক্টরিটি স্পষ্টভাবে $ PATH তেও দেখতে পাচ্ছি:
# echo $PATH | tr : '\n' | grep adm
/home/me/mydir/admbin
Location অবস্থানের এপিকে স্বাভাবিক বলে মনে হচ্ছে:
# file /home/me/mydir/admbin/mycommand
/home/me/mydir/admbin/mycommand: setuid setgid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped
# ls -l mycommand
-r-sr-s--- 1 me mygroup 97892 2012-04-11 18:01 mycommand
এবং যদি আমি এটি সম্পূর্ণরূপে যোগ্যতাসম্পন্ন পাথ ব্যবহার করে স্পষ্টভাবে চালিত করি:
# /home/me/mydir/admbin/mycommand
আমি প্রত্যাশিত আউটপুট দেখতে পাচ্ছি। এখানে অবশ্যই শেলটি কিছুটা বিভ্রান্ত করছে, তবে আমি কী ক্ষতি হতে পারি?
সম্পাদনা: সাদৃশ্যযুক্ত প্রশ্নের মতো দেখতে কী সন্ধান করা: কোনও পথ দিয়ে চালানোর সময় বাইনারি কার্যকর হবে না। উদাহরণস্বরূপ> ./ প্রোগ্রামটি কাজ করবে না তবে> প্রোগ্রামটি ভাল কাজ করে
আমি আমার AT PATH তেও এরকম একাধিক কমান্ডের জন্য পরীক্ষা করেছি, তবে কেবল একটিই খুঁজে পেয়েছি:
# for i in `echo $PATH | tr : '\n'` ; do test -e $i/mycommand && echo $i/mycommand ; done
/home/me/mydir/admbin/mycommand
EDIT2:
আজ সকালে হিসাবে, সমস্যাটি বিলুপ্ত হয়ে গেছে , এবং আমি এখন নির্বাহযোগ্যকে কার্যকর করতে সক্ষম হয়েছি।
এটি লগআউট এবং লগইন করার পরামর্শটিকে বৈধতা হিসাবে বিবেচনা করা যেতে পারে, তবে আমি গত রাতে সফলতা ছাড়াই এটি করেছি। সেই লগআউট / লগইনটিতে 'হ্যাশ-আর' কমান্ডটি চালিত করার সমতুল্য করা উচিত ছিল যা প্রস্তাবিত হয়েছিল (যা fww এছাড়াও একটি ksh বিল্টিন হিসাবে উপস্থিত হয়, এবং কেবল একটি বাশ বিল্টিন হিসাবে দেখা যায় না)।
কিছু উত্তরের জবাবে:
এটি একটি এক্সিকিউটেবল নয় স্ক্রিপ্ট (ফাইল কমান্ড আউটপুটে ELF রেফারেন্স দেখুন)।
আমি মনে করি না যে কোনও স্ট্রেস সাহায্য করেছিল। এটি সম্পূর্ণরূপে যোগ্যতাসম্পন্নকে কার্যকর করতে আদেশ জোর করে শেষ করে। আমি মনে করি যে আমি বর্তমান শেলটিতে স্ট্রেস সংযুক্তি করতে পারতাম, তবে যেহেতু আমি আর তিরস্কার করতে পারব না সে চেষ্টা করার কোনও মানে নেই।
$ PATH তে কোনও সেমিকোলন ছিল না। যেহেতু আমি আর তিরস্কার করতে পারি না, তাই আমি এই প্রশ্নটি পুরো $ PATH দিয়ে বিশৃঙ্খলা করব না।
অন্য শেলের চেষ্টা করা (অর্থাত্ বাশ) এমন কিছু হত যা আমিও চেষ্টা করতাম, যেমনটি পরামর্শ দেওয়া হয়েছিল। সমস্যাটি চলে যাওয়ার সাথে সাথে আমি জানি না যে এটি সাহায্য করত কিনা।
এটি আমার কাছে ডিরেক্টরি অনুমতিগুলি যাচাই করাও পরামর্শ দেওয়া হয়েছিল। এটি করার জন্য, প্রতিটি ডিরেক্টরি পর্যন্ত আমি এটি দেখতে পেলাম:
# ls -ld $HOME $HOME/mydir $HOME/mydir/admbin
drwxr-xr-x 10 me root 4096 2012-04-12 12:20 /home/me
drwxrwsr-t 22 me mygroup 4096 2012-04-12 12:04 /home/me/mydir
drwxr-sr-x 2 me mygroup 4096 2012-04-12 12:04 /home/me/mydir/admbin
OME হোম ডিরেক্টরি ডিরেক্টরি মালিকানা বিশৃঙ্খলাযুক্ত (মূল গোষ্ঠী হওয়া উচিত নয়)। এটি অন্যান্য সমস্যার কারণ হতে পারে, তবে আমি দেখতে পাচ্ছি না এটি কীভাবে এটির কারণ হতে পারে।