2011-04-24 6 views
5

मैं बेहतर प्रमाणीकरण नमूने का उपयोग करने की कोशिश कर रहा हूं बल्कि रूट विशेषाधिकार प्राप्त करने के लिए सेटुइड का उपयोग करने के तथाकथित "दुर्भावनापूर्ण" तरीके पर जाएं।BetterAuthorizationSample का उपयोग कैसे करें? - कोको

वर्तमान में मैं AuthorizationCreate() का उपयोग कर रहा हूं; कुछ फ़ाइलों को बदलने के लिए रूट पहुंच के लिए ब्लूटूथिकेशन के साथ, लेकिन मैं इस तथ्य से कुछ परेशान हूं कि ऐप लॉन्च होने पर मुझे लगातार अपना पासवर्ड दर्ज करना होगा।

तो मैं एप्पल की एक हेल्परटूल की विधि में आया, और मैं इसे समझ नहीं पाया।

मैं कुछ महीनों के लिए कोको के साथ काम कर रहा हूं, लेकिन यह मेरी पहुंच से बाहर है, फिर भी मुझे इसकी आवश्यकता है। सरल रूट-विशेषाधिकार प्राप्त कार्यों को करने के लिए मैं इस टूल को कैसे कार्यान्वित करूं?

क्या हेल्परटूल की अवधारणा का उपयोग करने का एक आसान तरीका है, ताकि मेरे उपयोगकर्ता एक बार अपना पासवर्ड दर्ज कर सकें और यह हमेशा के लिए रूट-विशेषाधिकार प्रदान करेगा?

+3

बस इसे रास्ते से बाहर निकालने के लिए: [बेहतर प्राधिकरण नमूना] (http://developer.apple.com/legacy/mac/library/samplecode/BetterAuthorizationSample/) अब लीगेसी दस्तावेज़ लाइब्रेरी का हिस्सा है। ध्यान दें जब यह सवाल पूछा गया था। BetterAuthorizationSample कार्यान्वयन के मुकाबले एक और आधुनिक समाधान हो सकता है। –

उत्तर

2

मैक ओएस एक्स पर एक सहायक उपकरण करने का "आधुनिक" तरीका इसे अपने ऐप के हिस्से के रूप में शिप करना है, और use the ServiceManagement framework to deploy it। उपकरण को तैनात करते समय, आपके उपयोगकर्ता एक बार अपना पासवर्ड दर्ज करते हैं। यह इसे launchd नौकरी के रूप में स्थापित करता है; तब से आप सहायक को लॉन्च करने के लिए any launchd on-demand mechanism का उपयोग करें और इसे आपके लिए काम करने के लिए प्राप्त करें।

ध्यान दें कि उपरोक्त ब्लॉग पोस्ट अनुशंसा करता है कि आप Authorization Services एस्केलेशन के साथ सहायक के बाद के इनवोकेशन की रक्षा करें, ताकि कोई भी मनमाने ढंग से विशेषाधिकार वृद्धि हो सके जिससे कि कोई भी उपयोग कर सके। ऐसा लगता है कि यह कुछ हद तक प्रभाव डालता है "उपयोगकर्ता केवल एक बार अपना पासवर्ड दर्ज कर सकते हैं" लाभ, हालांकि आप पॉलिसी डेटाबेस में अपने ऐप के प्रमाणीकरण टोकन बनाने के लिए AuthorizationRightSet() का उपयोग कर सकते हैं, ताकि आप वास्तव में परिभाषित कर सकें कि उपयोगकर्ताओं को पहले तैनाती पर पासवर्ड पेश करने की आवश्यकता है या नहीं।

उस पोस्ट का नमूना कोड on GitHub है, और इसे एक्सेस करने के लिए सहायक उपकरण और प्राधिकरण सेवाओं को तैनात करने के लिए ServiceManagement का उपयोग करके प्रदर्शित करता है।

+2

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

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