अद्यतन: लोगों को अभी भी संदर्भ के लिए इस सवाल का जवाब का उपयोग कर अद्यतन करने के BLAuthentication
एक पुराने, और अत्यधिक unrecommended समारोह AuthorizationExecuteWithPriviledges
कहा जाता है कि, काम करते हुए, के खिलाफ जाता है का उपयोग करता है आधुनिक सुरक्षा प्रतिमान, और बहिष्कृत है (और थोड़ी देर के लिए किया गया है)। आपको अभी भी इसका उपयोग करने की इजाजत है, तकनीकी रूप से, लेकिन यदि आप मैक ओएस एक्स शेर के लिए विकास कर रहे हैं, तो आप ServicesManagement फ्रेमवर्क का उपयोग करने के लिए स्वागत से अधिक हैं, जो आपको एक सहायक उपकरण के रूप में विशेषाधिकारों के साथ कोड चलाने की अनुमति देता है।
एक विशेषाधिकार प्राप्त सहायक उपकरण बनाने और लॉन्च करने के संदर्भ में, मेरे प्रश्नों में से एक को देखें, Writing a Privileged Helper Tool with SMJobBless()।
वहाँ NSFileManager
अधिकृत करने के लिए कोई वास्तविक आसान तरीका है, तो आप BLAuthentication
वर्ग के साथ प्रशासक प्रमाणीकरण के अंतर्गत चलाने मानक mv
और cp
उपकरण का उपयोग कर इस पर गौर करना चाहिए। दुर्भाग्यवश, मूल लेखक की वेबसाइट नीचे है, लेकिन आप आसानी से Google पर तैरते वर्ग की प्रतियां पा सकते हैं (यदि आप चाहें तो मैं आपके लिए एक प्रति अपलोड भी कर सकता हूं)।
#define MOVE @"/bin/mv"
if (![[BLAuthentication sharedInstance] isAuthenticated:MOVE]) {
[[BLAuthentication sharedInstance] authenticate:MOVE];
}
NSArray *arguments = [NSArray arrayWithObjects:@"location1", @"location2", nil];
[[BLAuthentication sharedInstance] executeCommand:MOVE withArgs:arguments];
कोड ऊपर प्रशासक के पासवर्ड के लिए संकेत करें और पांच साल की डिफ़ॉल्ट समय सीमा के लिए कार्यक्रम को प्रमाणित होगा:
BLAuthentication
के साथ, तुम क्या करने की कोशिश कर रहे हैं कुछ इस तरह चला जाता है मिनट।
चेतावनी
बेशक, हमेशा सिस्टम फ़ाइलों के साथ सावधान रहना! जब संभव हो तो उन्हें आगे बढ़ने या छेड़छाड़ करने से बचें, खासकर अगर आपका प्रोग्राम किसी और के कंप्यूटर पर चलने वाला है (यदि कुछ गलत हो जाता है, तो आपको दोषी ठहराया जा रहा है)!
स्रोत
2011-01-04 23:37:58
मैं वास्तव में पोस्ट की सराहना करता हूं! तो क्या मैं अभी भी NSFileManager क्लास का उपयोग करने में सक्षम हूं या क्या मुझे अब से "एमवी" कमांड का उपयोग करना होगा? वैसे, अगर आप इसे मेरे लिए अपलोड कर सकते हैं तो यह बहुत अच्छा होगा! धन्यवाद!!!! – lab12
ठीक है इसलिए मैं ब्लूटूथिकेशन क्लास ढूंढने में सक्षम था और देखा कि यह 2001 से था। क्या यह अभी भी काम करेगा यदि यह एक दशक पुराना है? क्या आप एनएसटीस्क भाग को कैसे कार्यान्वित करेंगे इस बारे में कोई जानकारी भी प्रदान कर सकते हैं? – lab12
केविन, कुछ चीजों को स्पष्ट करने के लिए: ए) नियमित फ़ाइलों के लिए, आप अभी भी 'NSFileManager' का उपयोग कर सकते हैं, लेकिन रूट पहुंच के लिए, ऊपर दिखाए गए अनुसार' BLAU प्रमाणीकरण 'का उपयोग करें। बी) क्षमा करें, मेरी गलती; आपको 'एनएसटीस्क' की भी आवश्यकता नहीं है (मैं कोड के साथ अपने उत्तर के उस हिस्से को अपडेट करना भूल गया था, लेकिन अब यह तय है)। चाल/कॉपी ऑपरेशन निष्पादित करने के लिए बस आदेश के पथ के साथ '-executeCommand: withArgs:' का उपयोग करें (@ "/ bin/cp" या @ "/ bin/mv")।सी) हां, हालांकि 'ब्लूटुथिकेशन' * पुराना * है, लेकिन यह अभी भी 10.6 के तहत भी संकलित और पूरी तरह से ठीक चलाता है (सुरक्षा ढांचे समय के साथ मुश्किल से बदल गए हैं)। –