7

मैं कुछ ऐसी चीज़ पर काम कर रहा हूं जिसे समय-समय पर/लाइब्रेरी में फ़ोल्डर में फ़ाइलों को स्थापित करने की आवश्यकता है।रूट एक्सेस डब्ल्यू/एलिवेटेड हेल्पर और एसएमजेबबलेस

मैं समझता हूं कि अतीत में मैं प्रमाणीकरण विधियों में से एक का उपयोग कर सकता था लेकिन तब से उन्हें 10.7 में बहिष्कृत कर दिया गया है।

मुझे अपने पढ़ने से समझ लिया है अब तक:

मैं एक सहायक है कि किसी तरह से प्रमाणीकृत हो जाता है बना सकते हैं और है कि सहायक होना चाहिए चलती कार्यों के सभी करते हैं। मैंने कुछ नमूना कोड पर एक नज़र डाली है, जिसमें कुछ शामिल हैं XPC और जिसे लिफ्ट कहा जाता है लेकिन मैं थोड़ा उलझन में हूं।

ऐसा लगता है कि इसमें से कुछ प्रकार के क्लाइंट/सर्वर मॉडल को स्थापित करने के साथ सौदा करने लगता है लेकिन मुझे यकीन नहीं है कि यह वास्तव में मेरी फ़ाइलों को सही निर्देशिका में कैसे स्थापित करेगा। अधिकांश उदाहरण सिर्फ तारों को पार कर रहे हैं।

मेरा प्रश्न बस: मैं अपने फ़ोल्डर को प्रोग्रामेटिक रूप से कैसे बना सकता हूं और समय-समय पर फाइलों को लिख सकता हूं जबकि उपयोगकर्ता को केवल एक बार पासवर्ड के लिए संकेत मिलता है और कभी नहीं? मुझे सच में यकीन नहीं है कि इस तक कैसे पहुंचे और वहां बहुत अधिक प्रलेखन प्रतीत नहीं होता है।

उत्तर

4

आप सही हैं कि इसके लिए बहुत अधिक दस्तावेज़ीकरण नहीं है। आप मूल रूप से एक और ऐप, सहायक ऐप लिखेंगे, जो SMJobBless() के साथ स्थापित हो जाएगा। आश्चर्य की बात नहीं है, यहां मुश्किल हिस्सा कोड हस्ताक्षर है। मेरे लिए कम से कम स्पष्ट हिस्सा यह था कि SMAuthorizedClients और SMPrivilegedExecutables प्रत्येक ऐप की जानकारी प्लिस्ट फ़ाइलों में प्रविष्टियां उस पहचान/प्रमाण पत्र पर निर्भर होती हैं जिसका उपयोग आपने ऐप पर हस्ताक्षर करने के लिए किया था। कंपाइलर/लिंकर के साथ सहायक उपकरण में संकलित जानकारी प्लिस्ट फ़ाइल प्राप्त करने के लिए एक चाल भी है, जो एक बंडल के बजाय एक एकल निष्पादन योग्य फ़ाइल होगी।

एक बार जब आप सहायक ऐप को चलाते और चलाते हैं तो आपको इसके साथ संवाद करने का एक तरीका तैयार करना होगा क्योंकि ये दो अलग-अलग प्रक्रियाएं हैं। एक्सपीसी एक विकल्प है, शायद सबसे आसान। XPC आमतौर पर सर्वर प्रक्रियाओं के साथ प्रयोग किया जाता है, लेकिन आप जो भी उपयोग कर रहे हैं वह केवल एक्सपीसी का संचार पक्ष है। असल में यह दो ऐप्स के बीच शब्दकोशों को आगे और आगे भेजता है। शब्दकोश के लिए एक मानक प्रारूप बनाएँ। मैंने @ "एक्शन", @ "सोर्स" और @ "गंतव्य" का इस्तेमाल 3 अलग-अलग एक्शन वैल्यू, @ "फाइलमोव", @ "फाइलकॉपी", और @ "मक्केड डायरेक्टरी" के साथ किया था। वे 3 चीजें हैं जो मेरा सहायक ऐप कर सकती हैं और यदि आवश्यक हो तो मैं आसानी से और जोड़ सकता हूं।

सहायक ऐप मूल रूप से XPC कनेक्शन और ईवेंट हैंडलर सामान सेट करेगा और कनेक्शन और कमांड की प्रतीक्षा करेगा। आदेश केवल एक शब्दकोश होगा, इसलिए आप उचित कुंजी/मानों की जांच करेंगे और जो कुछ भी करेंगे।

यदि आपको अधिक सहायता की आवश्यकता है तो मैं अधिक जानकारी और कोड प्रदान कर सकता हूं, लेकिन यह प्रश्न 9 महीने पुराना है, इसलिए मैं आपको वह विवरण देने में समय बर्बाद नहीं करना चाहता हूं जिसे आप पहले से ही समझ चुके हैं।

संबंधित मुद्दे