VPN بٹن منتظم کے لیے کام کرتا ہے اور باقی سب کے لیے ناکام ہوتا ہے، اس لیے کوئی sudoers میں ایک سطر شامل کرتا ہے۔ وہ سطر عام طور پر اس مسئلے سے زیادہ عمر پاتی ہے جسے حل کرنے کے لیے بنائی گئی تھی، اور اکثر بٹن کی ضرورت سے زیادہ اختیار دیتی ہے۔ پالیسی میں ترمیم سے پہلے دیکھیں کہ معاون کنکشن کا مالک یہ کام پہلے ہی کر سکتا ہے یا نہیں۔ نیچے دی گئی تین شرطیں طے کرتی ہیں کہ sudo شامل ہے یا نہیں۔

شرط 1: معاون مالک یہ sudo کے بغیر کر سکتا ہے

زیادہ تر Linux ڈیسک ٹاپ پر نیٹ ورک مینیجر پہلے ہی VPN کنکشن کا مالک ہوتا ہے، اور اس کی اجازت sudo کی بجائے polkit سے گزرتی ہے۔ جو صارف کنکشن اٹھانے کا مجاز ہو وہ کسی root قاعدے کے بغیر کمانڈ لائن سے یہ کر سکتا ہے۔ بٹن کو استحقاق درکار ہے یہ ماننے سے پہلے دیکھیں کہ مینیجر کیا اجازت دیتا ہے۔ اگر جواب ہاں ہے تو sudoers کی تبدیلی ایسا مسئلہ حل کر رہی ہے جو ہے ہی نہیں۔

nmcli connection show
nmcli connection up "Work VPN"

اگر مینیجر انکار کرے تو وجہ پڑھیں: غائب polkit قاعدہ، کسی دوسرے صارف کی ملکیت کا کنکشن یا ایسی جگہ محفوظ پروفائل جہاں سے صارف اسے پڑھ نہیں سکتا۔ ان میں سے ہر ایک کے لیے sudo قاعدے سے تنگ معاون حل موجود ہے۔ استحقاق بڑھانا آخری راستہ ہے، پہلا نہیں۔

شرط 2: قاعدہ ایک قابل عمل فائل اور اس کے دلائل کا نام لیتا ہے

اگر sudo واقعی درکار ہو تو قاعدے کو درست کمانڈ اور جہاں ممکن ہو وہ دلائل بتانے چاہئیں جو وہ استعمال کر سکتا ہے۔ وہ قاعدہ جو صارف کو ریپر اسکرپٹ چلانے دیتا ہے صرف اس اسکرپٹ کی اجازتوں جتنا محفوظ ہے، کیونکہ صارف بدل سکتا ہے کہ root کیا چلائے گا۔ کمانڈ کے بعد وائلڈ کارڈ والا قاعدہ اسی مسئلے کی مختصر شکل ہے۔

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

کمانڈ کے سلسلے میں ہر راستہ دیکھیں: بائنری، وہ اسکرپٹ جسے وہ کال کرتا ہے، وہ کنفیگریشن فائل جسے وہ پڑھتا ہے اور ان کے درمیان کوئی بھی ڈائریکٹری۔ اگر ان میں سے کوئی بھی صارف کے لیے قابل تحریر ہو تو محدود قاعدہ عملاً لامحدود root ہے۔ دلائل بھی اہم ہیں، کیونکہ کنفیگ راستہ قبول کرنے والی کمانڈ کو صارف کے زیر کنٹرول فائل کی طرف موڑا جا سکتا ہے۔ قاعدہ بٹن کے لیے نہیں، کام کے لیے لکھیں۔

اگر کمانڈ کو کام کرنے کے لیے صارف کے زیر کنٹرول فائل درکار ہو تو رکیں۔ تب ڈیزائن غلط ہے، اور کوئی sudoers نحو اسے محفوظ نہیں بنا سکے گا۔

شرط 3: پوری پالیسی پارس ہوتی ہے، صرف آپ کی سطر نہیں

اس ایڈیٹر سے تصدیق کریں جو فائل کو لاک کرتا اور نحو جانچتا ہے، اور ٹکڑے کی بجائے جوڑی گئی پالیسی کی تصدیق کریں۔ جو فائل خود پارس ہو جائے وہ پھر بھی شمولیت کی ترتیب توڑ سکتی ہے یا قاعدہ اس طرح دہرا سکتی ہے کہ رویہ بدل جائے۔visudo دستی یہاں استعمال ہونے والے لاکنگ ایڈیٹر اور صرف-جانچ موڈ دونوں کو دستاویز کرتا ہے۔

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

جانچ ناکام ہونے پر فائل اور سطر بتاتی ہے، اور وہی رپورٹ مفید حصہ ہے۔ معلوم خرابی کو زبردستی محفوظ کرنے کی بجائے ایڈیٹر کے ذریعے مطلوبہ تبدیلی درست کریں، کیونکہ ٹوٹی پالیسی ایک ساتھ تمام منتظمین کو باہر کر سکتی ہے۔ شمولیت ڈائریکٹری کی فائلوں کو بھی دستی کے مطلوبہ ملکیت اور موڈ درکار ہیں، ورنہ انہیں نظرانداز یا مسترد کیا جائے گا۔ نحو صرف پہلا دروازہ ہے: اسے عبور کرنے کے بعد قاعدہ دوبارہ پڑھیں اور پوچھیں کہ یہ واقعی کس چیز کی اجازت دیتا ہے۔

اگر تبدیلی کو کام کرانے کا واحد راستہ نحو کی جانچ بند کرنا ہو تو رکیں۔ وہ پالیسی نہیں، وہ ری بوٹ کے انتظار میں خلل ہے۔

بازیابی: ایسا سیشن رکھیں جو اب بھی کام کرے

محفوظ کرنے سے پہلے یقینی بنائیں کہ مجاز انتظامی سیشن پہلے ہی کھلا ہے اور مشین میں دوسرا راستہ موجود ہے۔ sudoers کی غلطی آپ کی اسے درست کرنے کی صلاحیت چھین سکتی ہے، اور ڈیسک ٹاپ کا بٹن اس خطرے کے لائق نہیں۔ اگر sudo پہلے ہی ٹوٹا ہوا ہے تو اپنا راستہ ایجاد کرنے کی بجائے نظام کا دستاویزی بازیابی راستہ استعمال کریں۔

sudo -n true
id

pkexec جیسے متبادل اپنی تنصیب اور پالیسی پر منحصر ہیں، اس لیے وہ یقینی دوسرا root پرامپٹ نہیں ہیں۔ مقامی اجازت کو VPN راز فراہم کرنے سے بھی الگ رکھیں: sudo قاعدہ غیر موجود سیکرٹ ایجنٹ نہیں کھول سکتا، اور گیٹ وے کے MFA کو پورا نہیں کرتا۔ درستی کے بعد عام اکاؤنٹ کو صرف مطلوبہ عمل کرتے ہوئے جانچیں، پھر مینیجر کے معمول کے کنٹرول استعمال کریں۔

فیصلہ تب مکمل ہوتا ہے جب آپ بتا سکیں کہ کس شرط نے sudo کو جائز ٹھہرایا، قاعدہ کس کا نام لیتا ہے، پوری پالیسی پارس ہوتی ہے، اور نہ ہونے پر آپ کیسے بازیابی کریں گے۔ استحقاق والا لانچر جو آپ کی انتظامی رسائی چھین لے برا سودا ہے، اور عام طور پر اس سے بچا جا سکتا ہے۔

متعلقہ مضامین