Mac OS X 10.8 पर सुरक्षा और गोपनीयता में स्थान सेवाओं से एप्लिकेशन निकालें


20

मैं MaC OS X 10.8 माउंटेन लायन पर सुरक्षा और गोपनीयता सेटिंग्स में स्थान सेवाओं से एप्लिकेशन निकालना चाहता था। (क्षुधा अभी भी भले ही वे की स्थापना रद्द कर रहे थे सूचीबद्ध किया गया।) मैं पद पाया Mac OS X 10.7 पर सुरक्षा और गोपनीयता में स्थान सेवाओं से निकालें आवेदन , और कहा कि मुझे सही दिशा में जा कर ली। यहाँ OS X 10.8.2 माउंटेन लायन समकक्ष है जो मेरे लिए काम करता है। मुख्य अंतर क्लाइंट.प्लेस्ट फ़ाइल का स्थान है। मैं चरण-दर-चरण प्रक्रिया भी प्रदान करना चाहता था।

अस्वीकरण: यह मेरे लिए काम किया। सुनिश्चित करें कि आपके पास आपके सिस्टम का एक अच्छा बैकअप है। इस प्रक्रिया में क्लाइंट.प्लिस्ट फ़ाइल का बैकअप बनाना शामिल है, लेकिन कोई भी कभी भी सुरक्षित नहीं हो सकता है।

1. टर्मिनल शुरू करें और फिर एक मूल शेल में सुडो
sudo -s

2. / var / db / locationd पर जाएं
cd /var/db/locationd

3. customers.plist फ़ाइल का एक बैकअप बनाओ
cp -p clients.plist clients.plist.save

4.ग्राहकों को xml में परिवर्तित करें (संपादन योग्य प्रारूप)
plutil -convert xml1 clients.plist

5. ग्राहकों को संपादित करने और एप्लिकेशन को हटाने के लिए vi (vim) का उपयोग करें।
vi clients.plist

फ़ाइल में संभवतः कई एप्लिकेशन प्रविष्टियां होंगी। यहां एकल एप्लिकेशन प्रविष्टि (इस मामले में सफारी) का प्रारूप है। पूरी प्रविष्टि को हटाने की आवश्यकता है।

    <key>com.apple.Safari</key>
    <dict>
        <key>Authorized</key>
        <true/>
        <key>BundleId</key>
        <string>com.apple.Safari</string>
        <key>Executable</key>
        <string>/Applications/Safari.app/Contents/MacOS/Safari</string>
        <key>LocationTimeStopped</key>
        <real>376348187.80421197</real>
        <key>Registered</key>
        <string>/Applications/Safari.app/Contents/MacOS/Safari</string>
        <key>RequirementString</key>
        <string>identifier "com.apple.Safari" and anchor apple</string>
        <key>Whitelisted</key>
        <false/>
    </dict>

6. बाइनरी में वापस क्लाइंट.प्लेस्ट फाइल को कन्वर्ट करें
plutil -convert binary1 clients.plist

7. स्थान पुनः आरंभ करें
killall locationd

यदि ऐप्स अभी भी हैं, तो इस प्रक्रिया को फिर से करें, पीआईडी ​​निर्धारित करने के बाद किल -9 का उपयोग करके पुनः आरंभ स्थान को छोड़कर। पीआईडी ​​पीएस आउटपुट में दूसरा क्षेत्र है।

ps -ef | grep locationd | grep -v grep
आउटपुट: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427

मैंने एक बार में एक ऐप हटाने के लिए दो बार प्रक्रिया चलाई। पहली बार, किला पर्याप्त था। दूसरी बार, यह नहीं था। मुझे नहीं पता क्यों। यह कार्य करता था जैसे कि लोकेशन कैश रख रहा था और क्लाइंट का पुनर्निर्माण कर रहा था। मैं ऐसा इसलिए कहता हूं क्योंकि एंट्रीज को क्लाइंट के लिए वापस जोड़ दिया गया था। किलॉल चलाने के बाद - और यहां तक ​​कि रिबूट पर भी। जो भी मूल कारण है, किल -9 का उपयोग करके मेरे लिए समस्या हल हो गई।

यदि चीजें बुरी तरह से जाती हैं, तो मूल फ़ाइल को वापस कॉपी करें और स्थान को पुनरारंभ करें।
cp -p clients.plist.save clients.plist
killall locationd(या मार -9 विधि)

आशा है कि ये आपकी मदद करेगा। चीयर्स!


1
मारना -HUP अधिक विश्वसनीय हो सकता है; यह एक कैश को फ्लश करने के लिए डेमॉन को बताने और इसकी कॉन्फिग फाइल को फिर से पढ़ने के लिए लीगेसी किल सिग्नल है। मैं देखता हूं कि किल-हूप लोकेशन काम करेगा। एक अन्य कारण यह है कि काम नहीं किया जा सकता है कैश की फाइलें हो सकती हैं ताकि नई स्पैन प्रक्रिया द्वारा पढ़ा जा सके।
नेविन विलियम्स

मजेदार तथ्य: मुझे यकीन नहीं है कि यह व्यवहार हाई सिएरा से पहले मौजूद था, लेकिन कम से कम इस मैकओएस में यदि आप एक फ़ाइल को अनचेक करते हैं जो अब प्राथमिकताएं फलक में मौजूद नहीं है, तो आमतौर पर ऐप इसे सूची में प्रदर्शित नहीं करेगा। हालांकि, इस पद्धति का उपयोग करते हुए, मुझे पता चला कि इनमें से कई कथित रूप से हटाए गए एप्लिकेशन थे, वास्तव में, अभी भी सूची में, बस प्रदर्शित नहीं हुए।
डैनियलएफ

मुझे इस के साथ अपने अनुभव के आधार पर भी ध्यान देना चाहिए: मैंने इसका इस्तेमाल सिस्टम प्रेफरेंस से खान की एक अप्प्लस्क्रिप्ट को हटाने के लिए किया था, कारणों से, और यह पॉपपिंग करता रहा कि यह कई प्रयासों के लिए मेरा स्थान चाहता था जब तक कि यह अंततः बंद न हो जाए। मुझे लगता है कि ऐसा इसलिए है क्योंकि मैं एप्सस्क्रिप्ट में कोड की उस लाइन को चलाने की कोशिश करता रहा, और बैश बैकग्राउंड में तब तक चलता रहा, जब तक उसे मेरे सिस्टम प्रेफरेंस से डिलीट नहीं कर दिया गया ... और इस तरह यह बैश में अगली लाइन पर चला गया। चूंकि मेरे पास इनमें से कई पृष्ठभूमि में चल रहे थे, जाहिर है, मुझे ऐसा करते समय प्रत्येक को व्यक्तिगत रूप से रद्द करना पड़ा।
DonielF

जवाबों:


5

Xcode की संपत्ति सूची संपादक का उपयोग पुराने ऐप्स की प्रविष्टियों को हटाने के लिए भी किया जा सकता है, लेकिन चूंकि फ़ाइल को प्राप्त करना मुश्किल है, इसलिए अनुमतियों को अस्थायी रूप से खोला जाना चाहिए:

mini-nevie:~ root# chmod o+rwx /var/db/locationd/ /var/db/locationd/clients.plist

इसलिए निर्देशिका और फ़ाइल को सभी उपयोगकर्ताओं द्वारा पढ़ा और लिखा जा सकता है। फिर, सुविधा के लिए, अपनी लॉगिन आईडी के लिए su:

mini-nevie:~ root# su - nevinwilliams
mini-nevie:~ nevinwilliams$ open /var/db/locationd/clients.plist 

यह मानता है कि Xcode * .plist फ़ाइलों को खोलने के लिए डिफ़ॉल्ट ऐप है, और आप संपत्ति सूची संपादक से परिचित हैं। रूट प्रॉपर्टी के तहत, 3 डिफ़ॉल्ट डिक्शनरी प्रविष्टियाँ हैं:

com.appl
com.appl.locationd.executable-/usr/libexec/UserEventAgent
com.appl.aosnotifyd

जिन्हें हटाया नहीं जाना चाहिए। ऐसी प्रविष्टियाँ जो लंबे समय से चली आ रही ऐप्स से संबंधित हैं, आप केवल संबंधित ऐप की पंक्ति के शब्दकोश कॉलम के बाईं ओर मँडरा सकते हैं, जहाँ एक उलटा ग्रे '-' दिखाई देगा। उस पर क्लिक करने से आइटम, और उसके सभी बच्चे निकल जाएंगे। यदि आप पहले प्रविष्टि का निरीक्षण करते हैं, तो कुंजी स्ट्रिंग के बाईं ओर ग्रे त्रिकोण (फाइंडर सूची-व्यू उपयोगकर्ताओं से परिचित) पर क्लिक करके शब्दकोश का विस्तार होगा और इसके तत्वों को प्रदर्शित करेगा।

एक बार जब आप अपनी संतुष्टि के लिए चाबियाँ हटाते हैं या अक्षम करते हैं, तो फ़ाइल को सहेजें, और Xcode छोड़ दें। फिर, टर्मिनल में वापस, करें:

mini-nevie:~ nevinwilliams$ exit
logout
mini-nevie:~ root# 

चामोद कमांड को वापस बुलाने के लिए दो बार ऊपर-तीर मारो ctrl-A, लाइन की शुरुआत में जाने के लिए, cursor-rightलगभग आठ बार, '+' को '-' में बदल दें, या निम्न दर्ज करें जैसा कि वे थे कि अनुमतियों को बहाल करने के लिए दिखाया गया है:

mini-nevie:~ root# chmod o-rwx /var/db/locationd /var/db/locationd/clients.plist 

उसके बाद स्थान डेमॉन HUP करें:

 mini-nevie:~ root# killall -HUP locationd

आपके परिवर्तनों की पुष्टि करने के लिए Security.PrefPane गोपनीयता टैब की त्वरित जाँच होनी चाहिए।

स्टैंडर्ड डिस्क्लेमर, शोक, डांट, मार, और "क्या यह यात्रा वास्तव में आवश्यक है?" प्रतिबिंब विशेष रूप से लागू होते हैं।


3

Tccutil (OS X कमांड लाइन उपयोगिता) का उपयोग करना

मुझे लगता है कि ऐसा करने का सबसे तेज़ और सबसे सुरक्षित तरीका, OS X कमांड लाइन उपयोगिता tccutil है

  • एक नई टर्मिनल विंडो खोलें
  • किसी भी खुली "सुरक्षा और गोपनीयता" को प्रीफ़ेन विंडो बंद करें
  • निम्न हाइलाइटेड कमांड से टाइप या पेस्ट करें

स्थान सेवाओं को रीसेट करें

tccutil reset CoreLocationAgent

संपर्क / पता पुस्तिका तक पहुंच रीसेट करें:

tccutil reset AddressBook

अनुस्मारक पर रीसेट करें

tccutil reset Reminders

कैलेंडर तक पहुंच रीसेट करें

tccutil reset Calendar

और वह सब वहाँ यह करने के लिए है। नहीं सूडो की जरूरत है, वैसे।


दुर्भाग्य से मेरे लिए काम नहीं कर रहा। मुझे डेटाबेस संदेश को रीसेट करने में विफल मिला।
अजनबी

@strangetimes: मैं इस बारे में पूरी तरह भूल चुका था। मैंने इस लिंक में उल्लिखित संशोधित tccutil की कोशिश नहीं की है, लेकिन मुझे ऐसा लगता है जैसे यह एक शॉट के लायक है: github.com/jacobsalmela/tccutil
Andreas

@strangetimes: मैं यह उल्लेख करना भूल गया कि यह कारण काम नहीं कर रहा है, सिस्टम अखंडता संरक्षण के कारण है, github.com/jacobsalmela/tccutil के अनुसार
एंड्रियास

कमांड tccutil reset CoreLocationAgentअब काम नहीं करता है। इस मुद्दे को देखें ।
nix

इसने मेरे लिए कैलेंडरों को हटाने का काम किया, लेकिन एक नए प्राधिकरण का अनुरोध करने के लिए काम नहीं कर रहा है। ऐसा करने के लिए मुझे उपयोगकर्ता / पुस्तकालय / कैलेंडर / कैलेंडर कैश डेटाबेस को निकालना था, फिर कंप्यूटर को पुनरारंभ करना होगा
क्रिस्टी बालू

1

यह पुराना है और मेरे द्वारा प्रस्तावित समाधान तकनीकी रूप से पोस्ट में समाधान से अलग नहीं है और एक को स्वीकार किया जाता है, लेकिन यह बहुत कम परेशानी है और स्वचालित करने के लिए बहुत आसान है (डीबगिंग के लिए उपयोगी)। बस करो

/usr/libexec/PlistBuddy -c 'Delete <bundle-id>' /var/db/locationd/clients.plist
killall -HUP locationd

जड़ के रूप में।


मेरे लिये कार्य करता है। धन्यवाद!
dbv 13

0

पिछले उत्तरों के अलावा, यह समस्या केवल फ़ाइल स्वामित्व को सुधारने के बाद मेरे लिए चली गई:

# chown -R _locationd:_locationd /var/db/locationd/
# chmod 750 /var/db/locationd/
# chmod 644 /var/db/locationd/clients.plist

फिर कंप्यूटर को पुनरारंभ करें।

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