আমি একটি স্ক্রিপ্ট লিখছি (আসলে স্ক্রিপ্ট এবং মেকফিলের সংমিশ্রণ) যা বাহ্যিক নির্ভরতা ইনস্টল করে: কিছু apt-getআদেশ, কিছু gitক্লোনিং, বিল্ডিং, ইনস্টল, ব্যবহারকারীদের গোষ্ঠীতে যুক্ত করা, ...
এই স্ক্রিপ্টগুলির কিছু ক্রিয়াকলাপের জন্য সুপারসারের অনুমতি প্রয়োজন হয়, কারও কারওর প্রয়োজন নেই।
এখন অবধি আমি সুডো দিয়ে পুরো মেক প্রক্রিয়াটি চালিয়েছি তবে এর কিছু ত্রুটি রয়েছে:
gitরেপোসrootহিসাবে আমি মালিক হিসাবে পেতে ক্লোন করেছি , যার অর্থ আমি পরেsudoবা তাদের ছাড়া তাদের সংশোধন করতে পারি নাchown- স্ক্রিপ্ট গোষ্ঠীতে ব্যবহারকারীদের যুক্ত যা ব্যবহারকারী থেকে যোগ করার জন্য জানি না
whoamiআয়root
কেবলমাত্র সুপারিশ হিসাবে চালিত হওয়ার সর্বোত্তম উপায়টি যা কেবল এটির প্রয়োজন হয়? আদর্শভাবে প্রক্রিয়াটির জন্য এখনও আমার sudoপাসওয়ার্ডটি প্রবেশ করানো দরকার তবে ইনস্টল প্রক্রিয়াটির একেবারে প্রথম দিকে once এটি তখন একেবারে শেষের দিকে ভুলে যাবে তবে ততক্ষণ পর্যন্ত এটি রাখুন (এটি বেশ কয়েক ঘন্টা সময় নিতে পারে)।
আমি অনলাইনে যে সমাধানগুলি পেয়েছি সেগুলির মধ্যে রয়েছে:
sudo -vস্ক্রিপ্টের সূচনায়, তবে আমি যদি এই সময়টি সঠিকভাবে বুঝতে পারি। আমার স্ক্রিপ্ট কয়েক ঘন্টা চলতে পারে- সঙ্গে স্ক্রিপ্ট চালাতে
sudo, কিন্তু কমান্ড যে কি না সঙ্গে সুপার-ইউজার প্রয়োজনsudo -u $(logname) <command>। আমি এখন এটিই করি তবে এটি অন্যরকম হওয়া উচিত বলে মনে হয়।
আদর্শভাবে, আমি আমার স্ক্রিপ্টটি চাই:
- সুপারিশারের শংসাপত্রগুলির জন্য জিজ্ঞাসা করুন
- লগ ইন করা ব্যবহারকারী হিসাবে সাধারণ কমান্ডগুলি চালান
- পদক্ষেপ 1 এ প্রবেশ করা শংসাপত্রগুলির সাথে sudo কমান্ডগুলি চালান
sudo -kসুপারউসার সেশন বন্ধ করতে
su $SUDO_USER -c commandচালান এবং সাধারণ ব্যবহারকারীর মতো কমান্ড ব্যবহার করুন।
SUDO_USERপরিবেশ পরিবর্তনশীল চেক করতে পারে। যদি উপস্থিত থাকে তবে এটিতে সুডো ব্যবহারকারীর ব্যবহারকারীর নাম থাকবে। সুতরাং আপনি (রুট হিসাবে) own SUDO_USER: U SUDO_GID $ আপনার_ফায়ালগুলি ছেঁকে দিতে পারেন। একইভাবে, আপনি এই ভেরিয়েবলগুলি পরীক্ষা করতে পারেন যাতে আপনার অ্যাডুজার কমান্ডগুলি জানতে পারে যে কোন ব্যবহারকারী যুক্ত করা উচিত।