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

تینوں امیدواروں کا موازنہ ملکیت پر کریں، سہولت پر نہیں۔

ٹرمینل چھوڑنے کے تین طریقے، تین مختلف مالک

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

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

sudo -b اسناد کا منتظم نہیں ہے

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

اگر کنکشن کو تعامل درکار ہو، تو حل ایک معاون غیر متعامل تصدیقی انتظام ہے، اسی سوال کو شروع کرنے کا دوسرا طریقہ نہیں۔

--daemon پروگرام بدلتا ہے، لاگ ان نہیں

--daemon OpenVPN سے خود کہتا ہے کہ ابتدا کے بعد الگ ہو جائے۔ 2.6 کا دستی نوٹ کرتا ہے کہ syslog کی ری ڈائریکشن آپشن کے تجزیے کے وقت ہوتی ہے، حالانکہ الگ ہونا بعد میں ہوتا ہے، اس لیے پیغامات توقع سے پہلے ٹرمینل میں آنا بند کر سکتے ہیں۔ اس مقام کے بعد خاموشی سرنگ کے بارے میں کچھ ثابت نہیں کرتی۔ واضح --log یا --log-append شامل کریں تاکہ آؤٹ پٹ ایسی جگہ پہنچے جہاں سے آپ اسے پڑھ سکیں۔

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

sudo کی تصدیق کیا دیتی ہے اور کیا نہیں

sudo -v کیش شدہ مقامی اسناد کی تصدیق یا تجدید کرتا ہے، پالیسی مانگے تو تصدیق کرتا ہے۔ یہ OpenVPN شروع نہیں کرتا، گیٹ وے کے ساتھ تصدیق نہیں کرتا، اور اسکرپٹ میں بعد کے حکم کی اجازت کی ضمانت نہیں دیتا۔ sudo -n الٹا مطلب دیتا ہے: نہ پوچھیں، ناکام ہوں۔ یہ مقامی اجازت کی ناکامی کو واضح کرتا ہے، جو مفید ہے، اور OpenVPN بعد میں کیا مانگے گا اس بارے میں کچھ نہیں کہتا۔

دونوں میں سے کوئی بھی اختیار سب کو بغیر پاس ورڈ حکم دینے یا منتظم کا پاس ورڈ اسکرپٹ میں بھیجنے کی وجہ نہیں ہے۔

قابل مشاہدہ مالک کو ترجیح دیں

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

آپ جو بھی چنیں، سرنگ جس وسیلے کے لیے موجود ہے اس کی تصدیق کریں۔ کامیاب شروعات کی درخواست ایک عمل کا واقعہ ہے، کام کرنے والے کنکشن کا ثبوت نہیں۔

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