ঠিক আছে, লাইটডিএম (লগইন পরিচালক) সম্পর্কে আমার ধারণা থেকে এটি কোনও নির্দিষ্ট ব্যবহারকারীর জন্য ডেস্কটপ পরিবেশ সীমাবদ্ধ করার পক্ষে সমর্থন করে বলে মনে হচ্ছে না । এটি একটি সমস্ত বা কিছুই চুক্তি। ডিফল্টরূপে, যখন কোনও ব্যবহারকারী কোনও ডেস্কটপ পরিবেশ চয়ন করেন, এটি তাদের ডিফল্ট ডেস্কটপ পরিবেশে পরিণত হবে। যখন তারা পরের বার লগইন করবেন, যদি না তারা অন্য একটি চয়ন করে, তারা তাদের ডিফল্টটিতে লগইন হবে।
তবে আপনি এটি তৈরি করতে পারেন যাতে ব্যবহারকারী এটি পরিবর্তন করতে না পারে। এই ব্যবহারকারীটি এখনও একটি পৃথক ডেস্কটপ পরিবেশ নির্বাচন করতে সক্ষম হবে, তবে তারা যদি তা করে তবে এটি তাদের ডিফল্ট পরিবর্তন করবে না। আমি বিশ্বাস করি এটি এটির সবচেয়ে নিরাপদ উপায়, যদি আপনি উদ্বিগ্ন না হন যে ব্যক্তি এটি পরিবর্তন করে দেবে। আপনাকে যা করতে হবে তা হ'ল তাদের .dmrc
ফাইল সম্পাদনা (তাদের হোম ডিরেক্টরিতে অবস্থিত, অর্থাৎ / হোম / ব্যবহারকারী)। এখানেই তাদের ডিফল্ট সেশনটি সংরক্ষণ করা হয়। পরিবর্তন Session
যা চাও যে ফাইলে পরিবর্তনশীল, অর্থাত্ ubuntu
ডিফল্ট ইউনিটি ডেন হয়, ubuntu-2d
ইউনিটি 2D, এবং LXDE
LXDE হয়। এটি তৈরির জন্য যাতে তারা অন্য কোনও ডিই এর সাথে লগ ইন করে তবে এটিকে পরিবর্তন করা হবে না, আমরা কেবল এটিকে অপরিবর্তনীয় (পরিবর্তনযোগ্য) করতে পারি:
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
। স্পষ্টতই এটি কিছুটা হ্যাকি, এবং আপনার কোনও ফাইল সম্পাদনা করার আগে আপনার অবশ্যই এটির ব্যাক আপ নিশ্চিত করা উচিত, তবে কোনও ব্যবহারকারী সঠিক ডিই-তে লগ ইন করছে কিনা তা নিশ্চিত করার প্রয়োজন হলে এটি কাজ করবে।