SFTP میں permission denied کیوں آتا ہے
SFTP اسی اکاؤنٹ کے تحت چلتا ہے جس سے آپ لاگ ان ہوئے ہیں، اور اس میں sudo کا کوئی متبادل نہیں ہوتا۔ /etc کی زیادہ تر فائلیں root کی ملکیت ہوتی ہیں، اس لیے عام اکاؤنٹ ان میں سے بعض کو پڑھ سکتا ہے مگر کسی میں بھی لکھ نہیں سکتا۔ یہ درست طرزِ عمل ہے اور اجازتیں کمزور کر کے اسے درست کرنے کی کوشش نہیں کرنی چاہیے۔
کیا نہیں کرنا چاہیے
ترتیب کی فائل پر chmod 777 نہ چلائیں، /etc کی فائلوں کی ملکیت اپنے اکاؤنٹ کو نہ دیں، اور صرف ایک بار تدوین کرنے کے لیے root کا پاس ورڈ سے لاگ ان فعال نہ کریں۔ بعض سروسز ضرورت سے زیادہ کھلی اجازتوں والی فائلیں قبول نہیں کرتیں، اور ایسی ہر تبدیلی تدوین مکمل ہونے کے بہت بعد تک سرور کی حفاظت کمزور رکھتی ہے۔
ٹرمینل میں sudoedit استعمال کریں
sudoedit فائل کو عارضی مقام پر نقل کرتا ہے، اسے آپ ہی کے اکاؤنٹ کے تحت ایڈیٹر میں کھولتا ہے، اور آپ کے محفوظ کرنے کے بعد ہی واپس اصل مقام پر لکھتا ہے۔ ایڈیٹر خود root کے طور پر نہیں چلتا۔
sudoedit /etc/nginx/nginx.confایک نقل اپ لوڈ کریں، پھر اسے اصل مقام پر نصب کریں
اگر آپ مقامی ایڈیٹر کو ترجیح دیتے ہیں تو فائل اپنی ہوم ڈائریکٹری میں اپ لوڈ کریں اور sudo سے اسے اصل مقام پر نصب کریں۔ پہلے اصل فائل کا بیک اپ ایسی جگہ بنائیں جہاں سے ترتیب میں دوسری فائلیں شامل کرنے کا کوئی طریقہ اسے نہ پڑھے۔ install کمانڈ مالک اور موڈ مقرر کرتی ہے، جبکہ SELinux والے نظاموں پر restorecon درست سیاق مقرر کرتا ہے۔ یہ قدریں نقل کرنے سے پہلے اصل فائل کا مالک اور موڈ دیکھیں، کیونکہ ہر فائل root اور 644 استعمال نہیں کرتی۔
stat -c '%U %G %a' /etc/nginx/nginx.conf
sudo cp -a /etc/nginx/nginx.conf /root/nginx.conf.bak
sudo install -o root -g root -m 644 ~/nginx.conf.new /etc/nginx/nginx.conf
sudo restorecon -v /etc/nginx/nginx.confلاگو کرنے سے پہلے درستگی جانچیں
غلط ساخت والی فائل اگلی بار دوبارہ شروع ہونے پر سروس کو روک سکتی ہے۔ متعلقہ سروس کو دوبارہ لوڈ کرنے سے پہلے اسی کی جانچ چلائیں۔ SSH کی ترتیبات بدلتے وقت موجودہ سیشن کھلا رکھیں اور دوسری ونڈو سے نیا لاگ ان آزمائیں۔
sudo nginx -t
sudo sshd -t
sudo visudo -cf /etc/sudoers.d/exampleCH-J Server Manager میں sudo سے تدوین
جب SSH اکاؤنٹ فائل نہیں پڑھ سکتا تو File Manager اسے sudo سے کھولنے کی پیشکش کرتا ہے اور خبردار کرتا ہے کہ محفوظ کرنے کے لیے sudo درکار ہوگا۔ محفوظ کرتے وقت ڈیٹا اکاؤنٹ کی نجی عارضی ڈائریکٹری میں جاتا ہے اور تصدیق کے بعد sudo اسے مالک، اجازتیں، ACL اور SELinux سیاق برقرار رکھتے ہوئے درست مقام پر منتقل کرتا ہے۔ اختیاری بیک اپ اصل کو بدلنے سے پہلے اس کی نقل محفوظ کرتا ہے۔ پاس ورڈ صرف سرور پر sudo کو بھیجا جاتا ہے اور ڈسک یا لاگ میں محفوظ نہیں ہوتا۔ اگر sudo پالیسی ٹرمینل لازم کرتی ہے (requiretty)، تو ایپ اس شرط کو نظرانداز نہیں کرتی۔ ایپ فائل کے مواد کی درستگی نہیں جانچتی، اس لیے سروس کی جانچ خود چلائیں۔