SFTP के साथ वांछित umask कैसे डालें?


23

मेरे पास एक SFTP सर्वर (ओपनश / sftp- सर्वर) है और मैं इस सेवा का उपयोग करने वाले उपयोगकर्ताओं के लिए umask 002 सेट करना चाहूंगा। मैंने PAM (pam.d / common-session), और प्रत्येक उपयोगकर्ता के लिए .profile सेट करने का प्रयास किया, लेकिन कोई भाग्य नहीं।

SSH लॉगिन के साथ सब कुछ ठीक है, लेकिन जब मैं SFTP (gFTP के साथ) के साथ कोशिश करता हूं तो मेरे पास 022 umask सेट होता है।

मैंने पहले ही sftp-server के लिए एक रैपर का उपयोग करने की कोशिश की थी जो sftp-server को कॉल करने से पहले umask को बदल रहा है, नसीब नहीं।

कोई मदद? आपका बहुत बहुत धन्यवाद!

जवाबों:


25

OpenSSH 5.4p1 के बाद से, मुझे लगता है, आप "-u" विकल्प का उपयोग कर सकते हैं, उदाहरण के लिए:

Subsystem sftp /usr/lib/openssh/sftp-server -u 022

आदमी पृष्ठ से:

 -u umask
         Sets an explicit umask(2) to be applied to newly-created files
         and directories, instead of the user's default mask.

यह अच्छा है!! मैं ASAP पर नज़र
डालूंगा

5
उन w / o -u विकल्प के लिए, यह काम करता है:Subsystem sftp /bin/sh -c 'umask 0002; /usr/lib/openssh/sftp-server'
स्टीव क्ले

1
अच्छा समाधान। यह क्लाइंट शेल और अनुप्रयोगों के साथ समस्या का समाधान करता है, ऐसे साइबरडैक, जो सिस्टम umask की परवाह किए बिना अपनी डिफ़ॉल्ट अनुमतियों को सेट करते हैं। मैंने यह सुनिश्चित करने के लिए उपयोगी पाया कि प्रत्येक क्लाइंट ऐप मेरे उपयोगकर्ताओं को समूह फ़ाइलों पर एक साथ काम करने के लिए सही अनुमति देगा। यह जोड़ना उपयोगी हो सकता है कि यह सेटिंग उपयोगकर्ताओं को यदि वे चाहें तो फ़ाइल अनुमतियों को अनुकूलित करने से नहीं रोकेंगे।
गरलोस

जोड़ने के लिए एक अंतिम बात: यदि आपको केवल sftp सुविधा की आवश्यकता है और अपने उपयोगकर्ताओं को शेल एक्सेस देने की आवश्यकता नहीं है, तो आप उनके गोले के लिए bash के बजाय rsh का उपयोग करने और /etc/rssh.conf में उनके लिए डिफ़ॉल्ट umask सेट करने पर भी विचार कर सकते हैं। । यह आपके सर्वर को अधिक सुरक्षित बना सकता है
gerlos

7

मुझे उम्मीद है कि यह किसी और घंटे की हताशा को बचा सकता है ...

यदि आप GUI SFTP एप्लिकेशन का उपयोग कर रहे हैं, तो अपलोड पर अनुमतियाँ सेट करने के लिए उसकी प्राथमिकताएँ जांचें।

मैंने ऊपर दिए गए सभी समाधानों की कोशिश की थी, और यह पता चला कि आवेदन केवल उन्हें ओवरराइड कर रहा था।


^ ^ हाँ, लंबे समय से मैं वेबबाइड के समाधान के समान एक स्क्रिप्ट बनाकर sftp कनेक्शन पर umask सेट कर रहा हूं। हाल ही में मैं अपना सिर खुजला रहा था कि यह काम क्यों नहीं हुआ जैसा कि अतीत में हुआ था। स्पष्ट रूप से कुछ बिंदु पर मेरे SFTP क्लाइंट के लिए एक अपडेट ने स्पष्ट रूप से ओम के साथ कनेक्ट करने के बाद umask सेट किया, इसलिए आंकड़ा पर जाएं।
जारेड किप

यह सिर्फ GUIs नहीं है। क्लाइंट्स भी नहीं। मुझे यह पता लगाने में बहुत लंबा समय लगा कि मैंने जो परीक्षण फ़ाइल अपलोड की थी उसमें 0600 थे जिसे क्लाइंट (ओपनएसएसएच sftp) ने रिमोट साइड में कॉपी किया था।
xebeche

धन्यवाद! कुछ भी नहीं के लिए अनुमति के साथ चारों ओर खेल इतना समय बिताया।
तानिया रास्किया

2

कई घंटों के बाद मैंने विभिन्न हैक्स और फ़िक्सेस को लागू करने की कोशिश की, जो एक उचित समाधान है!

SSH के लिए एक पैच है जो आपको SFTP के लिए इच्छित उम्मा को चुनने की अनुमति देता है। आप इसे यहाँ डाउनलोड कर सकते हैं: http://sftpfilecontrol.sourceforge.net/

मेरे लिए (OpenSSH_5.2p1 + sftpfilecontrol-v1.3, OpenSSL 0.9.8g 19 अक्टूबर 2007) यह पूरी तरह से काम कर रहा है!


2
बस ध्यान दें कि umask सेट करने का विकल्प 5.4p1 के बाद से ओपनएसएसएच में उपलब्ध है, मेरे उत्तर को और नीचे देखें।
वोबाइड

2

Ssh config फाइल में आप विशेष रूप से फ़ाइल के मोड को सेट करने के लिए भी इसका उपयोग कर सकते हैं (क्लाइंट को सेट करने की कोशिश कर सकने वाले किसी भी चामॉड को ओवरराइड करके)। यहाँ मैं आंतरिक sftp का उपयोग कर रहा हूँ, लेकिन मुझे लगता है कि यह sftp-server के लिए समान होगा:

ForceCommand internal-sftp -u 0022   

0

उद्धरण के लिए इस संदेश :

मैंने /etc/init.d/ssh में "umask 007" लाइन जोड़कर यह ठीक किया।

बैश .profileइंटरैक्टिव लॉगिन गोले के लिए उपयोग करता है । मुझे नहीं लगता sftpकि एक के रूप में मायने रखता है। आप umask सेट करने में सक्षम हो सकते हैं /etc/bash.bashrcया ~/.bashrcयदि ऊपर की टिप काम नहीं करती है या आप अधिक महीन दाने वाला नियंत्रण चाहते हैं।


2
जवाब के लिए धन्यवाद, लेकिन मैं पहले से ही ssh umask 002 (मैं भी 0002 की कोशिश की) में था और यह काम नहीं कर रहा है :( भी bashrc ध्यान में नहीं लिया है, एक बाहरी SFTP ग्राहक के साथ के रूप में मुझे नहीं लगता कि bash का उपयोग किया जाता है। अगर मैं सीधे ssh के साथ लॉग इन करता हूं तो सब कुछ ठीक है। मेरी समस्या केवल SFTP क्लाइंट्स के साथ है। धन्यवाद!
mat_jack1

उफ़, आप सही कह रहे हैं। मुझे नहीं पता कि मैं बैश के बारे में क्यों सोच रहा था।
अगली सूचना तक रोक दिया गया।

0

इस सवाल का संदर्भ लें एक सरल समाधान खोजने के लिए जिसे विशिष्ट ओपनश संस्करण की आवश्यकता नहीं है और न ही कस्टम पैच।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.