আমি "রুটসুডো" ডকুমেন্টেশনটি পড়েছি এবং এই লাইনে আগ্রহী:
রুট হিসাবে গ্রাফিকাল অ্যাপ্লিকেশন শুরু করতে আপনার কখনই স্বাভাবিক সুডো ব্যবহার করা উচিত নয় ।
কেন? পার্থক্য কি? আমি কেবল একটি সাধারণ ডেস্কটপ ব্যবহারকারী হিসাবে একটি সহজ ব্যাখ্যা প্রদান করুন।
আমি "রুটসুডো" ডকুমেন্টেশনটি পড়েছি এবং এই লাইনে আগ্রহী:
রুট হিসাবে গ্রাফিকাল অ্যাপ্লিকেশন শুরু করতে আপনার কখনই স্বাভাবিক সুডো ব্যবহার করা উচিত নয় ।
কেন? পার্থক্য কি? আমি কেবল একটি সাধারণ ডেস্কটপ ব্যবহারকারী হিসাবে একটি সহজ ব্যাখ্যা প্রদান করুন।
উত্তর:
গ্রাফিকাল অ্যাপ্লিকেশনগুলি প্রায়শই ব্যবহারকারীর বাড়ির ফোল্ডারের ভিতরে লিখিত কনফিগারেশন ফাইলগুলিতে সেটিংস এবং অন্যান্য ব্যবহারকারী-নির্দিষ্ট ডেটা সংরক্ষণ করে । ব্যবহারকারীর হোম ফোল্ডার হিসাবে তাদের কী ব্যবহার করা উচিত তা নির্ধারণ করতে প্রধান প্রক্রিয়া প্রয়োগকারী অ্যাপ্লিকেশনগুলি HOME
পরিবেশ পরিবর্তনশীল । (আপনি নিজে এটি দিয়ে পরিদর্শন করতে পারেন echo $HOME
)।
মনে করুন আপনি gedit
হিসাবে (একটি গ্রাফিকাল টেক্সট সম্পাদক) চালাচ্ছেন root
। আপনি চালাতে পারেন sudo gedit
, HOME
দিকে বাতলান অব্যাহত থাকবে আপনার হোম ডিরেক্টরীতে, যদিও প্রোগ্রাম চলছে যেমনroot
। ফলস্বরূপ, আপনার হোম ডিরেক্টরি হিসাবেgedit
কনফিগারেশন ফাইলগুলি লিখবে । এটি কখনও কখনও কনফিগারেশন ফাইলগুলির মালিকানাধীন হয়ে যায় এবং এইভাবে আপনার কাছে অ্যাক্সেসযোগ্য হয় (যখন আপনি পরে প্রোগ্রামটি নিজের হিসাবে চালান এবং হিসাবে হিসাবে না )। এটি মূলত ঘটে যখন অ্যাপ্লিকেশনটিকে একটি নতুন কনফিগারেশন ফাইল তৈরি করতে হয়। নতুনভাবে তৈরি করা ফাইলগুলি, ডিফল্টরূপে, তাদের তৈরি করা ব্যবহারকারীর মালিকানাধীন যারা তাদের তৈরি করেন (যারা এই ক্ষেত্রে তিনি আপনি নন)।root
root
root
root
আপনার গ্রাফিকাল অ্যাপ্লিকেশনগুলি 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 gedit
nautilus-admin
ইনস্টলেশন সরাসরি এগিয়ে আছে:
sudo apt install nautilus-admin
এখন আপনি যখন নটিলাসে আছেন তখন প্রশাসকের হিসাবে সম্পাদনা করার জন্য আপনার কাছে অতিরিক্ত বিকল্প থাকবে:
gedit
রুট হিসাবে পছন্দ পছন্দ করে নাআপনি যখন gedit
রুট হিসাবে চালান আপনি ট্যাব স্টপগুলির জন্য নিয়মিত ব্যবহারকারী হিসাবে সেটআপ করা পছন্দগুলি ব্যবহার করতে পারবেন না, ট্যাবগুলিকে ফাঁকা স্থান, ফন্টের নাম, ফন্টের আকার, লাইন মোড়ানো ইত্যাদিতে রূপান্তর করুন
এটির সমাধানের জন্য আমি sgedit
ব্যবহারকারীর পছন্দগুলি উত্তরাধিকার সূচিত করে এবং এগুলি রুটে প্রয়োগ করতে স্ক্রিপ্ট লিখেছি : আমি কীভাবে আমার ব্যবহারকারীর gedit এর পছন্দসমূহের সাথে আমার রুট gedit সিঙ্ক করতে পারি?
sgedit filename1 filename2 ...
sudo -H
রুট পাওয়ার পাওয়ার সাথে সাথে ফাইলের মালিকানা সংরক্ষণে উন্নীত হয় ।sudo
সময় শেষ হলে পাসওয়ার্ডের অনুরোধ ।gedit
একটি পটভূমি টাস্ক হিসাবে কল যেমন টার্মিনাল প্রম্পট তত্ক্ষণাত্ উপস্থিত হয়।