স্ক্রিপ্টের কমান্ডগুলি একে একে স্বাধীনভাবে কার্যকর করা হয়। স্ক্রিপ্টের সমস্ত কমান্ডের পিতা-মাতা হিসাবে স্ক্রিপ্ট নিজেই অন্য একটি স্বতন্ত্র প্রক্রিয়া এবং su কমান্ড এটি রুটে পরিবর্তন করতে পারে না এবং করতে পারে না: su কমান্ডটি রুট সুবিধাগুলি সহ একটি নতুন প্রক্রিয়া তৈরি করে।
Su কমান্ডটি সম্পূর্ণ হওয়ার পরে, একই ব্যবহারকারী হিসাবে চলমান প্যারেন্ট প্রসেসটি, স্ক্রিপ্টের বাকী অংশটি কার্যকর করবে।
আপনি যা করতে চান তা একটি র্যাপার স্ক্রিপ্ট লিখুন। সুবিধাযুক্ত কমান্ডগুলি মূল স্ক্রিপ্টে যায়, উদাহরণস্বরূপ~/main.sh
#!/bin/sh
ls /root
মোড়ক স্ক্রিপ্টটি মূল স্ক্রিপ্টটিকে মূল অনুমতি সহ কল করে
#!/bin/sh
su -c ~/main.sh root
এই প্রক্রিয়াটি চালু করতে আপনি মোড়কটি চালান, যা ব্যবহারকারীকে মূল ব্যবহারকারীকে স্যুইচ করার পরে মূল স্ক্রিপ্টটি চালু করে।
এই মোড়ক কৌশলটি স্ক্রিপ্টটিকে নিজের চারপাশে মোড়কে পরিণত করতে ব্যবহার করা যেতে পারে। মূলত এটি রুট হিসাবে চলমান কিনা তা পরীক্ষা করে দেখুন, না হলে নিজেই পুনরায় চালু করতে "সু" ব্যবহার করুন।
$ 0 হ'ল লিপিটি নিজেকে বোঝানোর একটি সহজ উপায় এবং হুয়ামি কমান্ড আমাদের বলতে পারে আমরা কে (আমরা কি মূল?)
তাই অন্তর্নির্মিত মোড়কের সাহায্যে মূল স্ক্রিপ্টটি হয়ে যায়
#!/bin/sh
[ `whoami` = root ] || exec su -c $0 root
ls /root
এক্সিকিউটিভের ব্যবহারটি নোট করুন। এর অর্থ হল "এই প্রোগ্রামটি প্রতিস্থাপন করুন", যা কার্যকরভাবে কার্যকর হয় এবং শীর্ষে থেকে চালানোর জন্য, রু দ্বারা চালু করা নতুন প্রোগ্রাম শুরু করে su প্রতিস্থাপনের উদাহরণটি "রুট" তাই এটি ডানদিকে চালিত করে না ||
sudo su
আমার চোখ ব্যাথা করে