SFTP में अनुमति क्यों अस्वीकार होती है
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), तो ऐप इस शर्त को दरकिनार नहीं करता। ऐप फ़ाइल की सामग्री का सत्यापन नहीं करता, इसलिए सेवा की जाँच स्वयं चलाएँ।