ঠিক আছে, লাইটডিএম (লগইন পরিচালক) সম্পর্কে আমার ধারণা থেকে এটি কোনও নির্দিষ্ট ব্যবহারকারীর জন্য ডেস্কটপ পরিবেশ সীমাবদ্ধ করার পক্ষে সমর্থন করে বলে মনে হচ্ছে না । এটি একটি সমস্ত বা কিছুই চুক্তি। ডিফল্টরূপে, যখন কোনও ব্যবহারকারী কোনও ডেস্কটপ পরিবেশ চয়ন করেন, এটি তাদের ডিফল্ট ডেস্কটপ পরিবেশে পরিণত হবে। যখন তারা পরের বার লগইন করবেন, যদি না তারা অন্য একটি চয়ন করে, তারা তাদের ডিফল্টটিতে লগইন হবে।
তবে আপনি এটি তৈরি করতে পারেন যাতে ব্যবহারকারী এটি পরিবর্তন করতে না পারে। এই ব্যবহারকারীটি এখনও একটি পৃথক ডেস্কটপ পরিবেশ নির্বাচন করতে সক্ষম হবে, তবে তারা যদি তা করে তবে এটি তাদের ডিফল্ট পরিবর্তন করবে না। আমি বিশ্বাস করি এটি এটির সবচেয়ে নিরাপদ উপায়, যদি আপনি উদ্বিগ্ন না হন যে ব্যক্তি এটি পরিবর্তন করে দেবে। আপনাকে যা করতে হবে তা হ'ল তাদের .dmrcফাইল সম্পাদনা (তাদের হোম ডিরেক্টরিতে অবস্থিত, অর্থাৎ / হোম / ব্যবহারকারী)। এখানেই তাদের ডিফল্ট সেশনটি সংরক্ষণ করা হয়। পরিবর্তন Sessionযা চাও যে ফাইলে পরিবর্তনশীল, অর্থাত্ ubuntuডিফল্ট ইউনিটি ডেন হয়, ubuntu-2dইউনিটি 2D, এবং LXDELXDE হয়। এটি তৈরির জন্য যাতে তারা অন্য কোনও ডিই এর সাথে লগ ইন করে তবে এটিকে পরিবর্তন করা হবে না, আমরা কেবল এটিকে অপরিবর্তনীয় (পরিবর্তনযোগ্য) করতে পারি:
sudo chattr +i /home/user/.dmrc
আপনি অপরিবর্তনীয় পতাকাটি অপসারণ না করা হলে এখনই কেউ সেই ফাইলটি (রুট এবং অন্যান্য প্রোগ্রাম অন্তর্ভুক্ত) পরিবর্তন করতে পারবেন না:
sudo chattr -i /home/user/.dmrc
আপনি যদি পুরোপুরি না চান তবে এই ব্যবহারকারীটি আর কোনও ডিই দিয়ে লগ ইন করতে পারে, আমি এটি সম্পাদন করার জন্য সত্যিকারের একটি হ্যাকি উপায় (যেমন আপনার নিজের ঝুঁকিতে এটি করুন) বের করেছিলাম। আমি একঘেয়েমি ছিলাম এবং এটি চেষ্টা করার মতো মজাদার জিনিস বলে মনে হয়েছিল। লাইটডিএম দেখতে পাবে এমন বিভিন্ন ডিই এর সমস্ত ফাইল /usr/share/xsessionsহিসাবে রাখা হয় .desktop। এফওয়াইআই, আপনি লগইন স্ক্রিনে দেখাতে চান না এমন কোনওটি মুছতে পারেন (তবে এটি এটি সমস্ত ব্যবহারকারীদের জন্য মুছে ফেলবে)। আপনি যদি এগুলির কোনও একটি খুলেন তবে সেগুলি মোটামুটি সোজা। এগুলি হ'ল আপনার ডেস্কটপে শর্টকাটের মতোই বেসিক ডেস্কটপ লঞ্চার ফাইল। প্রতিটিতে একটি থাকেExecলাইন, যা আপনি লগইন স্ক্রিনে আপনার ডিই বেছে নেওয়ার সময় কার্যকর হয় (অর্থাত্ ডিই চালু হয়)। আমরা এর সদ্ব্যবহার করতে যাচ্ছি এবং কোন ব্যবহারকারী লগ ইন করছে তা যাচাই করে দেখছি restricted
প্রথমত, প্রতিটি .desktopফাইলের জন্য /usr/share/xsessions/আপনাকে একটি স্ক্রিপ্ট তৈরি করতে হবে /usr/local/bin। আমার উদাহরণস্বরূপ, আমি এটি কীভাবে এটি করতে হবে তা দেখাব ubuntu.desktopযা ইউনিটি ডি, এবং এলএক্সডিইডি কে DE হিসাবে ব্যবহার করতে আমরা আমাদের সীমাবদ্ধ ব্যবহারকারীর (সীমাবদ্ধকারী) ব্যবহার করতে বাধ্য করছি। এলএক্সডিইডি.ডেস্কটপটির দিকে তাকালে আমরা দেখতে পাচ্ছি যে Execকমান্ডটি রয়েছে /usr/bin/startlxdeএবং কোনও TryExecআদেশ নেই। আপনি খোলার পরে ubuntu.desktopআমরা দেখতে পাই যে Execকমান্ডটি হ'ল gnome-session --session=ubuntuএবং TryExecআদেশটিও হ'ল unity। TryExecকমান্ড ঠিক কি এটা মনে হয়। Execকমান্ডটি চালানোর পরে , এটি কমান্ডটি চালানোর চেষ্টা করবে TryExec, কিন্তু এটি ব্যর্থ হলে এটি ক্রাশ হবে না।
এখন, এই কমান্ডগুলি গ্রহণ করে আমরা .desktopফাইলগুলি থেকে আমাদের স্ক্রিপ্টগুলি তৈরি করতে পারি। আমরা তাদের ভিতরে রাখব /usr/share/bin। আমাদের দুটি তৈরি করতে হবে, একটি এর জন্য Execএবং একটি এর জন্য TryExec। আমরা এরকম কিছু করব:
ubuntude.sh
#!/bin/bash
if [ `/usr/bin/whoami` = "restricteduser" ] ; then
/usr/bin/startlxde
else
gnome-session --session=ubuntu
fi
ubuntudetry.sh
#!/bin/bash
if [ `/usr/bin/whoami` != "restricteduser" ] ; then
unity
fi
লগ ইন করা ব্যক্তিটি আমাদের বিধিনিষেধযুক্ত ব্যবহারকারী কিনা তা আমরা কেবল পরীক্ষা করেই নিচ্ছি এবং যথাযথ ডিই কে গুলি চালাচ্ছি। এখন, আমাদের নিশ্চিত করা দরকার যে সেগুলি কার্যকর হয়:
sudo chmod +x /usr/local/bin/ubuntude.sh
sudo chmod +x /usr/local/bin/ubuntudetry.sh
আমাদের এখন আমাদের পরিবর্তন ubuntu.desktopকরতে হবে যাতে এটি আমাদের স্ক্রিপ্টগুলিকে আসল ডিইএসের পরিবর্তে কল করে। ফাইলটির লাইন Execএবং TryExecলাইনগুলি মন্তব্য করুন এবং তাদের সাথে এটি প্রতিস্থাপন করুন:
Exec=/usr/local/bin/ubuntude.sh
TryExec=/usr/local/bin/ubuntudetry.sh
আপনার থাকতে পারে এমন অন্য কোনও ডিইএসের জন্য কেবল প্রক্রিয়াটি পুনরাবৃত্তি করুন। যদি কোনও TryExecডিই এর জন্য না থাকে, তবে এটির জন্য একটি ডিট্রি.শ স্ক্রিপ্ট তৈরি করার দরকার নেই কারণ এলএক্সডিই কোনও ব্যবহার করে না TryExec। স্পষ্টতই এটি কিছুটা হ্যাকি, এবং আপনার কোনও ফাইল সম্পাদনা করার আগে আপনার অবশ্যই এটির ব্যাক আপ নিশ্চিত করা উচিত, তবে কোনও ব্যবহারকারী সঠিক ডিই-তে লগ ইন করছে কিনা তা নিশ্চিত করার প্রয়োজন হলে এটি কাজ করবে।