rootওএস এক্স-এর জন্য ডিফল্ট শেল /bin/sh। এটিরও shএকটি সংস্করণ bash, তবে বাশ নামের সাথে যুক্ত হলেsh :
shPOSIX মান হিসাবে মেনে চলার সময় যতটা সম্ভব নিবিড় historicalতিহাসিক সংস্করণগুলির প্রারম্ভিক আচরণের নকল করার চেষ্টা করে ।
যখন একটি ইন্টারেক্টিভ লগ-ইন শেল হিসাবে প্রার্থনা, অথবা সঙ্গে একটি নন-ইন্টারেক্টিভ শেল হিসাবে --loginবিকল্প, এটা প্রথম করার জন্য প্রচেষ্টার সংখ্যা পড়া এবং থেকে কমান্ডগুলো /etc/profileএবং ~/.profile, যাতে। ... sh হিসাবে চিহ্নিত একটি শেল অন্য কোনও স্টার্টআপ ফাইল থেকে কমান্ডগুলি পড়ার এবং সম্পাদন করার চেষ্টা করে না
অর্থাৎ এটা পড়তে না .bash_profileএ সব কিনা এটি একটি লগ-ইন শেল বা না হিসাবে চালানো হয়েছিল নির্বিশেষে । আপনি .profileপরিবর্তে ব্যবহার করতে পারেন , বা এমনকি একে অপরের সাথে সিমিলিংক করতে পারেন। আপনার সাথে একটি লগ-ইন শেল আরম্ভ তাহলে su -l, .profileসূচনার সময় লোড হয়, কিন্তু .bash_profileহতে হবে।
আপনি রুটের শেল পরিবর্তন করতেও ব্যবহারdscl করতে পারেন ( ওএস এক্স-এ শেল নির্ধারণের জন্য এটি ব্যবহার করা /etc/passwdহয় না )। এর সাহায্যে আপনি রুটের বর্তমান শেলটি পরীক্ষা করতে পারেন dscl . -read /Users/root UserShell; ডকুমেন্টেশনের সাথে পরামর্শ করুন এবং এটিকে অন্য কোনও কিছুতে পরিবর্তন করার আগে সাবধানতার সাথে চিন্তা করুন।
আর একটি উপায় হ'ল আপনার suঅনুরোধটি bashঅবিলম্বে কার্যকর করতে বাধ্য করার জন্য পরিবর্তন করা।
আপনি যা বলেছেন তা প্রদত্ত, আমি সম্ভবত সিমলিংকের প্রস্তাব দিই, তবে আপনি বাশের পসিক্স মোডে যে পরিবর্তনগুলি করেছেন তা সন্ধান করতে এবং আপনি সেগুলি রাখতে চান কিনা তা স্থির করতে পারেন।