প্রথম জিনিসগুলি: এক্সডিজি_আরটিআইএমআইডিআইআর
আপনার প্রথম প্রশ্নের উত্তর দেওয়ার জন্য, "এক্সডিজি_আরটিআইএমআইডিআর কী?" , এটি এমন একটি পরিবেশের পরিবর্তনশীল যা আপনি লগ ইন করার সময় স্বয়ংক্রিয়ভাবে সেট হয়ে যায় any (8)XDG_RUNTIME_DIR
দ্বারা সেট করা নোট , সুতরাং এটি আসলে X এর সাথে সম্পর্কিত নয় (প্রোগ্রামগুলি গ্রাফিকভাবে চলমান), যা আপনার মনে হচ্ছে যে সমস্যা।pam_systemd
কীভাবে সমস্যা সমাধান করবেন
আপনার দ্বিতীয় প্রশ্ন, "এই সমস্যাটি কীভাবে সমাধান করবেন?" একটি খুব ভাল এক। এর অর্থ আপনি ঠিক কী কী তা নয় , তবে কীভাবে এটি আপনার নিজের থেকে বের করতে হয় সে সম্পর্কেও আপনি আগ্রহী। শুরু করতে, প্রথমে প্রথম ত্রুটি বার্তাগুলি দেখুন। বিশেষত, অনুসন্ধান করতে No protocol specified
বা WARNING **: Could not open X display
, আপনাকে দেখাতে হবে যে সমস্যাটি এক্স ( দ্য এক্স উইন্ডোয়িং সিস্টেম নামেও পরিচিত ) এর সাথে রয়েছে যা আপনার স্ক্রিনে গ্রাফিকাল প্রোগ্রামগুলি কীভাবে প্রদর্শিত হয়। যা জেনে আপনার মনে সমস্যার সমাধানের অনেক প্রশ্ন উত্থাপন করা উচিত।
এক্স প্রদর্শন
আপনার পরের প্রশ্নটি হতে পারে, এটি "এক্স ডিসপ্লে" কী যা খোলা যায় না? একটি "প্রদর্শন" হ'ল আপনার স্ক্রিনের ঠিকানা। [*] যে কোনও প্রোগ্রাম আপনার স্ক্রিনে লিখতে চায় তার ঠিকানাটি জানতে হবে। আপনি আপনার এক্স ডিসপ্লেটি কী তা DISPLAY পরিবেশের ভেরিয়েবলটি পরীক্ষা করে দেখতে পারেন:
echo $DISPLAY
এবং sudo
টাইপ করে আপনি যা দেখতে পাচ্ছেন তা আপনার ডিআইডিএল তা যাচাই করতে পারেন :
sudo -s
echo $DISPLAY
exit
যদি এটি কিছু না দেখায় তবে সমস্যাটি। (নীচে ঠিক দেখুন)।
XAUTHORITY
তবে, যদি সমস্যা না হয় এবং DISPLAY
সঠিকভাবে সেট করা থাকে তবে sudo
? তাহলে আপনি ভাবতে পারেন, এক্স এর কি এমন কিছু অনুমতি আছে যা অন্য ব্যবহারকারীদের আমার প্রদর্শনীতে লেখা থেকে বাধা দেয়? আপনি যদি ভাবেন যে, আপনি ঠিক বলেছেন, এক্স এর দুটি প্রধান অনুমোদন পদ্ধতি রয়েছে: xauth
এবং xhost
। বর্তমানে সবচেয়ে বেশি ব্যবহৃত একটি হ'ল xauth
(1) যা XAUTHORITY
পরিবেশ পরিবর্তনশীল ব্যবহার করে । আবার, আসুন এটি সঠিকভাবে সেট করা আছে কিনা তা পরীক্ষা করে দেখুন sudo
:
echo $XAUTHORITY
sudo -s
echo $XAUTHORITY
exit
যদি XAUTHORITY
আপনার জন্য আপনার হোম ডিরেক্টরি ডিরেক্টরিতে কোনও ফাইলের দিকে ইঙ্গিত করা হয় তবে আপনি চালানোর সময় এটি ফাঁকা থাকে sudo
, তবে সমস্যাটি।
ফিক্স: পরিবেশের পরিবর্তনশীলগুলি সংরক্ষণ করুন ables
তো, ঠিক কী? যদি হয় DISPLAY
বা XAUTHORITY
পরিবেশের ভেরিয়েবলগুলি সংরক্ষণ করে না পাওয়া যায় তবে sudo
আপনি বিকল্পটি ব্যবহার করে পরিবেশ সংরক্ষণ করতে sudo
(8) বলতে পারবেন -E
:
sudo -E evince
একটি ভাল উপায়: env_keep
আপনি ভালভাবে জিজ্ঞাসা করতে পারেন, অপেক্ষা করুন, যদি -E
সবকিছু যাদুতে কাজ করে, তবে এটি কেন ডিফল্ট নয় sudo
? উত্তরটি হ'ল এটি একটি সম্ভাব্য সুরক্ষা বিপত্তি। পরিবেশের ভেরিয়েবলগুলি প্রোগ্রামগুলির কাজ করার পদ্ধতিগুলিকে প্রভাবিত করে এবং আপনি চান না যে সেগুলি সমস্ত ব্যবহারকারীর অ্যাকাউন্ট থেকে রুটে রফতানি করা উচিত। এটি করার "সঠিক" উপায়টি হ'ল (8) ব্যবহার Defaults env_keep += "DISPLAY XAUTHORITY"
করে sudoers
(5) ফাইলটিতে লাইন যুক্ত করা । আপনি চলমান দ্বারা পরিবেশের ভেরিয়েবল সুডো সংরক্ষণ করে তা পরীক্ষা করতে পারেন:visudo
sudo sudo -V
(হ্যাঁ, আপনি sudo
দু'বার টাইপ করুন ) আমি লাইনটি ডিফল্ট sudoers ফাইল ( /etc/sudoers
) এ না রাখার পরামর্শ দিচ্ছি , তবে একটি স্থানীয় ফাইলে যা আপনার সিস্টেম আপগ্রেড করার সময় ওভাররাইট হবে না। আপনি এটি যেমন করতে পারেন:
sudo visudo -f /etc/sudoers.d/local
তবে অপেক্ষা করুন, উপরের কেউ যদি কাজ না করে?
আমি মনে করি এটি মোটামুটি উত্তম উত্তর, তবে আপনি যদি এখনও সমস্যা বোধ করেন তবে আমি অন্য একটি বিষয় প্রস্তাব করব। স্থানীয় হোস্টে (আপনার মেশিনে) নির্দিষ্ট ব্যবহারকারীর অ্যাক্সেস দেওয়ার জন্য আপনি xhost
(1) ব্যবহার করতে পারেন ,
xhost si:localuser:root
এই ক্ষেত্রে, আমরা root
ব্যবহারকারীর নাম হিসাবে নির্দিষ্ট করছি , যেহেতু এই অ্যাকাউন্টটি যা sudo
প্রোগ্রামগুলি চালায়।
[*] : প্রশ্ন: আমি কেবল একটি পর্দা পেয়েছি, তাই কোনও এক্স ডিসপ্লেতে "ঠিকানা" কেন প্রয়োজন? উত্তর: এক্স কারণ কেবল আপনার মেশিনেই নয়, ইন্টারনেটেও কাজ করতে পারে। সঙ্গে এক্স , এটি আপনার মেশিন যা অন্য ইন্টারনেট হোস্ট এবং অন্যান্য হোস্ট যে আপনার পর্দায় প্রদর্শিত প্রোগ্রাম এ প্রদর্শিত প্রোগ্রাম চালানোর জন্য সহজ (অভিমানী তুমি তাদের অনুমতি দিতে)।