मुझे पता है कि इस सवाल पर पहले ही चर्चा की जा चुकी है, लेकिन उन पोस्टों को पढ़कर मैं उत्तरों का पता नहीं लगा सका, क्योंकि कुछ ने कहा "हाँ उमस्क काम कर सकते हैं", और अन्य लोगों का कहना है "ओपनएसएसएच ने कमांड को हमेशा अनुमतियों को संरक्षित रखा"
सब से पहले सिर्फ सटीक:
- मैं आरएचईएल 6.2 पर ओपनएसएसएच 5.9 का उपयोग करता हूं
- मैंने umask के
internal-sftp
साथ सबसिस्टम का उपयोग करते हुए एक क्रोकेटेड SFTP सर्वर को कॉन्फ़िगर किया है-u 0002
- मैं सटीक हूं कि मैं
-p
या-P
विकल्प का उपयोग नहीं करता हूं
मैंने एक तरफ से जो पढ़ा है, उससे: SFTP स्थानांतरण के लिए umask को परिभाषित करने के कई तरीके हैं:
- ओपनएसएसएच 5.4 के बाद से (या )
-u
का विकल्पinternal-sftp
sftp-server
- एक रैपर बनाएं
sftp-server
(जिसमें हम स्पष्ट रूप से umask सेट करते हैं - यह पर्यावरण के आधार पर btw के लिए फिट नहीं है) pam.d/sshd
फ़ाइल में एक विशिष्ट कॉन्फ़िगरेशन जोड़ें
दूसरी ओर मैंने पढ़ा है:
OpenSSH SFTP क्लाइंट और सर्वर अनुमतियों (एक एक्सटेंशन के रूप में) को स्थानांतरित करते हैं और स्थानीय तरफ अनुमतियों के साथ दूरस्थ फ़ाइल बनाते हैं। AFAICT, इस व्यवहार को अक्षम करने का कोई तरीका नहीं है।
इसलिए मैंने निम्नलिखित परीक्षण किया:
मेरे मुवक्किल पर मैंने 600 और 700 अनुमतियों के साथ फ़ाइल MYFILE
और निर्देशिका बनाई MYDIR
।
तब sftp
आदेशों के साथ :
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
मैं की अनुमतियों को परिवर्तित करते हैं MYFILE
और MYDIR
ग्राहक के पक्ष, और फिर से अपलोड, मैं सर्वर साइड पर नई अनुमतियों मिलता है।
मैंने pam.d
समाधान की भी कोशिश की , लेकिन यह कुछ भी नहीं बदला।
तो अब मैं उलझन में हूँ:
मैंने जो भी परीक्षण किया है और जो मैंने पढ़ा है उसका एक हिस्सा, मैं कहूंगा कि ओपनएसएसएच हमेशा अनुमतियों को संरक्षित करता है। लेकिन जैसा कि कई पोस्ट कह रहे हैं कि एक ऑमस्क परिभाषित किया जा सकता है, मैं कल्पना कर सकता हूं कि मैं अपने परीक्षण कॉन्फ़िगरेशन में एक गलत काम कर सकता हूं।
मैं कुछ अनुभवी प्रतिक्रिया की सराहना करूंगा।
धन्यवाद।