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

دو غیر متعلق خصوصیات

ڈسک کی خفیہ کاری یہ بتاتی ہے کہ مشین بند ہونے پر بلاک کون پڑھ سکتا ہے۔ ماؤنٹ کا اختیار یہ بتاتا ہے کہ کوئی فائل چلائے تو کرنل اس کے موڈ بٹس کے ساتھ کیا کرے گا۔ پہلے میں کچھ بھی دوسرے کو محدود نہیں کرتا، اور مکمل خفیہ کردہ لیپ ٹاپ تمام پابندیوں کے ساتھ فائل سسٹم ماؤنٹ کر سکتا ہے۔

دونوں کو ایک ہی خصوصیت کے طور پر پڑھنا ہی اس نظریے کو جنم دیتا ہے کہ خفیہ کردہ ہوم root رسائی کو روکتا ہے۔ وہ نظریہ اس لیے قائم رہتا ہے کہ دونوں علامات ایک ہی مشین پر ظاہر ہوتی ہیں، اس لیے نہیں کہ ان کی وجہ ایک ہے۔

منتقلی کو واقعی کیا دباتا ہے

execve کا حوالہ بیان کرتا ہے کہ set-user-ID والی قابلِ عمل فائل نئی عمل کا مؤثر شناخت نامہ فائل کے مالک کا کیسے بناتی ہے۔ اسی صفحے پر وہ شرائط درج ہیں جو اس منتقلی کو دباتی ہیں اور گروہی شناخت ناموں کے لیے ان کا متبادل: no_new_privs کی ترتیب، nosuid کے ساتھ ماؤنٹ شدہ فائل سسٹم، اور زیرِ نگرانی عمل۔ انہی شرائط میں فائل کی صلاحیتیں نظر انداز کی جاتی ہیں۔ وہ چار اصول اس نوعیت کی تقریباً ہر رپورٹ کا احاطہ کرتے ہیں۔

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

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

اس بارے میں کیا نہیں کرنا چاہیے

غیر تصدیق شدہ بائنری پر set-user-ID بٹس لگانا اور پابندی ختم ہونے تک اسے ادھر ادھر منتقل کرنا مرمت نہیں ہے۔ یہ اس پالیسی کی جگہ، جسے آپ نہیں سمجھتے تھے، ایسا استحقاق رکھ دیتا ہے جس کا آپ آڈٹ نہیں کر سکتے، اور مددگار پر وہی طریقہ اپنانا ایک معروف ترقیِ استحقاق کا راستہ ہے۔ ماؤنٹ سے nosuid ہٹانا اس سے بھی بدتر ہے، کیونکہ یہ اس فائل سسٹم کے ہر پروگرام پر اثر انداز ہوتا ہے، صرف ایک پر نہیں۔

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

اصل لانچ سیاق کی تصدیق کریں

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

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

findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper

ماؤنٹ کے اختیارات اور مددگار کی ملکیت ایک ہی نوٹ میں درج کریں۔ ورنہ اسے ڈیبگ کرنے والا اگلا شخص خفیہ کاری کا نظریہ پھر شروع سے دہرائے گا۔

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