আমি "রুটসুডো" ডকুমেন্টেশনটি পড়েছি এবং এই লাইনে আগ্রহী:
রুট হিসাবে গ্রাফিকাল অ্যাপ্লিকেশন শুরু করতে আপনার কখনই স্বাভাবিক সুডো ব্যবহার করা উচিত নয় ।
কেন? পার্থক্য কি? আমি কেবল একটি সাধারণ ডেস্কটপ ব্যবহারকারী হিসাবে একটি সহজ ব্যাখ্যা প্রদান করুন।
আমি "রুটসুডো" ডকুমেন্টেশনটি পড়েছি এবং এই লাইনে আগ্রহী:
রুট হিসাবে গ্রাফিকাল অ্যাপ্লিকেশন শুরু করতে আপনার কখনই স্বাভাবিক সুডো ব্যবহার করা উচিত নয় ।
কেন? পার্থক্য কি? আমি কেবল একটি সাধারণ ডেস্কটপ ব্যবহারকারী হিসাবে একটি সহজ ব্যাখ্যা প্রদান করুন।
উত্তর:
গ্রাফিকাল অ্যাপ্লিকেশনগুলি প্রায়শই ব্যবহারকারীর বাড়ির ফোল্ডারের ভিতরে লিখিত কনফিগারেশন ফাইলগুলিতে সেটিংস এবং অন্যান্য ব্যবহারকারী-নির্দিষ্ট ডেটা সংরক্ষণ করে । ব্যবহারকারীর হোম ফোল্ডার হিসাবে তাদের কী ব্যবহার করা উচিত তা নির্ধারণ করতে প্রধান প্রক্রিয়া প্রয়োগকারী অ্যাপ্লিকেশনগুলি HOME পরিবেশ পরিবর্তনশীল । (আপনি নিজে এটি দিয়ে পরিদর্শন করতে পারেন echo $HOME)।
মনে করুন আপনি geditহিসাবে (একটি গ্রাফিকাল টেক্সট সম্পাদক) চালাচ্ছেন root। আপনি চালাতে পারেন sudo gedit, HOMEদিকে বাতলান অব্যাহত থাকবে আপনার হোম ডিরেক্টরীতে, যদিও প্রোগ্রাম চলছে যেমনroot । ফলস্বরূপ, আপনার হোম ডিরেক্টরি হিসাবেgedit কনফিগারেশন ফাইলগুলি লিখবে । এটি কখনও কখনও কনফিগারেশন ফাইলগুলির মালিকানাধীন হয়ে যায় এবং এইভাবে আপনার কাছে অ্যাক্সেসযোগ্য হয় (যখন আপনি পরে প্রোগ্রামটি নিজের হিসাবে চালান এবং হিসাবে হিসাবে না )। এটি মূলত ঘটে যখন অ্যাপ্লিকেশনটিকে একটি নতুন কনফিগারেশন ফাইল তৈরি করতে হয়। নতুনভাবে তৈরি করা ফাইলগুলি, ডিফল্টরূপে, তাদের তৈরি করা ব্যবহারকারীর মালিকানাধীন যারা তাদের তৈরি করেন (যারা এই ক্ষেত্রে তিনি আপনি নন)।rootrootrootroot
আপনার গ্রাফিকাল অ্যাপ্লিকেশনগুলি sudoসোজা না করে বরং গ্রাফিকাল ফ্রন্ট্যান্ডের সাথে চালানো উচিত এটি প্রাথমিক কারণ sudo। উবুন্টু এবং তার ডেরাইভেটিভস (Xubuntu এবং Lubuntu সহ) অধিকাংশ মান গ্রাফিকাল ফ্রন্টএন্ড হয় gksu/gksudo । কুবুন্টুতে এটি হয় kdesudo। (এটি ডেস্কটপ পরিবেশ ব্যবহৃত হচ্ছে তার উপর নির্ভর করে on )
আপনি যদি গ্রাফিকাল অ্যাপ্লিকেশনটি চালানোর জন্য সরাসরি ব্যবহার করতে চান তবে আপনি sudoচালাতে geditপারেন:
sudo -H gedit
-Hপতাকা তোলে sudoসেট HOMEনির্দেশ করার জন্য rootএর বাড়ি ফোল্ডারে (যা /root)।
এটি এখনও .Xauthorityকোনও অস্থায়ী ফোল্ডারে এটি অনুলিপি করে স্বয়ংক্রিয়ভাবে হ্যান্ডেল করবে না (গ্রাফিকাল sudoসীমান্তগুলি আপনার জন্য যত্ন নিতে এটি অন্য জিনিস )। তবে .Xauthorityদুর্গম ইভেন্টে অ্যাক্সেসযোগ্য, আপনি এটি বলে ত্রুটি পাবেন এবং তারপরে আপনি sudo rm ~/.Xauthorityস্বয়ংক্রিয়ভাবে পুনঃজেনারেট হওয়ায় সমস্যাটি এটি মুছে ফেলার মাধ্যমে সমাধান করতে পারবেন । সুতরাং, .Xauthorityকনফিগারেশন ফাইলগুলির মালিকানা এবং অনুমতিগুলি সুরক্ষার চেয়ে মালিকানা ও অনুমতিগুলি রক্ষা করা কম গুরুত্বপূর্ণ।
rootজমির মালিকের বিপরীতে .Xauthority, যখন কনফিগারেশন ফাইলগুলি মালিকানাধীন হয়ে ওঠে rootতবে সমস্যাটি কী তা সর্বদা সুস্পষ্ট নয় (কারণ গ্রাফিকাল প্রোগ্রামগুলি প্রায়শই চলবে তবে খুব ভালভাবে কাজ করবে না এবং কনসোলে কোনও কার্যকর ত্রুটি আউটপুট দেয়)। এবং এটি কখনও কখনও সমাধানের জন্য আরও বড় ঝামেলা হয়, বিশেষত আপনি যদি এমন পরিস্থিতিতে থাকেন যে আপনি নিজের বাড়ির ডিরেক্টরিতে থাকা এক বা একাধিক ফাইলগুলি আপনার ব্যতীত অন্য কারও মালিকানাধীন করতে চান (কারণ তখন আপনি chownআপনার সমস্ত ফাইল পুনরাবৃত্তভাবে ইঙ্গিত করে এটি ঠিক করতে পারবেন না) নিজের কাছে ফিরে আসুন)।
অতএব, অ্যাপ্লিকেশনটির অভ্যন্তরীণ কাজের সাথে আপনি অত্যন্ত পরিচিত না হন এবং নিশ্চিত হন যে এটি কোনওরকম কনফিগারেশন ফাইল লেখার চেষ্টা করে না, তবে গ্রাফিকাল অ্যাপ্লিকেশন চালানোর জন্য sudo(কমপক্ষে ছাড়া -H) ব্যবহার করা উচিত নয় ।
sudo chmod -R $USER:$USER ~দুর্ভাগ্যক্রমে, এই মানদণ্ডগুলি সর্বদা প্রয়োগ হয় না। আপনার যদি এমন কোনও ফাইল থাকে যেখানে আপনার গ্রুপের মালিককে সংরক্ষণ করা দরকার, আপনি চালাতে পারেন sudo chmod -R $USER ~। এটি সাধারণত পর্যাপ্ত। (আপনার যদি নিজের হোম ডিরেক্টরিতে অন্য কোনও ব্যক্তির মালিকানাধীন ফাইলগুলির দরকার হয় তবে
chmodআসলে কি তা করে? আমি সবসময় ভাবতাম এটিই chownএটি করেছিল। chmodএটা আমার জন্য কখনও করেনি।
chownপরিবর্তে chmodআমার অবশ্যই লেখা উচিত ছিল । এর জন্য দুঃখিত - এবং এটি নির্দেশ করার জন্য ধন্যবাদ!
sudo -H echo $HOME, আপনার শেল - আপনি যেমন চলমান, না রুট হিসাবে - সঞ্চালিত প্যারামিটার সম্প্রসারণ উপর $HOME, পথ প্রাপ্তির আপনার হোম ডিরেক্টরীতে, তারপর পাসের যে sudoঘুরে ইতিমধ্যে-প্রসারিত মান পাসের যা echo, যা এটি ছাপে। sudo -H printenv HOME, sudo -H bash -c 'echo $HOME'এবং sudo -H sh -c 'echo $HOME'সমস্ত মুদ্রণ /root। এটি ধারণাগতভাবে অনুরূপ - যদিও কোনও আলাদা প্রক্রিয়া অনুসারে - কীভাবে x=a echo "$x"মুদ্রণ না করে a( xইতিমধ্যে যদি এর মান না থাকে a)।
সহজভাবে করা:
এটি আপনার হোম ডিরেক্টরিতে থাকা ফাইলগুলিকে মূলের মালিকানাধীন প্রতিরোধ করে।
এটি এখানে পড়ুন । এছাড়াও, সম্ভবত একটি নকল "gksudo nautilus" এবং "sudo nautilus" এর মধ্যে পার্থক্য কী?
অ্যাড-অন ব্যবহার করা gksu nautilusএবং এর বিকল্প । এটি আপনাকে নটিলাসের সাহায্যে ফাইল এবং ডিরেক্টরিগুলি ব্রাউজ করতে এবং তারপরে এটিকে রুট (প্রশাসক) হিসাবে খুলতে দেয়।gksu geditnautilus-admin
ইনস্টলেশন সরাসরি এগিয়ে আছে:
sudo apt install nautilus-admin
এখন আপনি যখন নটিলাসে আছেন তখন প্রশাসকের হিসাবে সম্পাদনা করার জন্য আপনার কাছে অতিরিক্ত বিকল্প থাকবে:
gedit রুট হিসাবে পছন্দ পছন্দ করে নাআপনি যখন geditরুট হিসাবে চালান আপনি ট্যাব স্টপগুলির জন্য নিয়মিত ব্যবহারকারী হিসাবে সেটআপ করা পছন্দগুলি ব্যবহার করতে পারবেন না, ট্যাবগুলিকে ফাঁকা স্থান, ফন্টের নাম, ফন্টের আকার, লাইন মোড়ানো ইত্যাদিতে রূপান্তর করুন
এটির সমাধানের জন্য আমি sgeditব্যবহারকারীর পছন্দগুলি উত্তরাধিকার সূচিত করে এবং এগুলি রুটে প্রয়োগ করতে স্ক্রিপ্ট লিখেছি : আমি কীভাবে আমার ব্যবহারকারীর gedit এর পছন্দসমূহের সাথে আমার রুট gedit সিঙ্ক করতে পারি?
sgedit filename1 filename2 ...sudo -Hরুট পাওয়ার পাওয়ার সাথে সাথে ফাইলের মালিকানা সংরক্ষণে উন্নীত হয় ।sudoসময় শেষ হলে পাসওয়ার্ডের অনুরোধ ।geditএকটি পটভূমি টাস্ক হিসাবে কল যেমন টার্মিনাল প্রম্পট তত্ক্ষণাত্ উপস্থিত হয়।