Mac OS X 10.8’de Güvenlik ve Gizlilik Konusunda Konum Hizmetlerinden Uygulamaları Kaldırma


20

MaC OS X 10.8 Mountain Lion'daki güvenlik ve gizlilik ayarlarındaki uygulamaları yer hizmetlerinden kaldırmak istedim. (Uygulamalar kaldırılmış olsalar bile hala listeleniyorlardı.) Mac OS X 10.7'deki Güvenlik ve Gizlilik'teki Konum Servisleri'nden uygulamayı kaldır uygulamasını buldum ve bu beni doğru yönde yönlendirdi. İşte benim için çalışan OS X 10.8.2 Mountain Lion eşdeğeri. Ana fark istemcileri.plist dosyasının konumu. Ayrıca adım adım bir süreç sağlamak istedim.

YASAL UYARI: Bu benim için çalıştı. Sisteminizi iyi yedeklediğinizden emin olun. Bu işlem clients.plist dosyasının bir yedeğini almayı içerir ancak bir tanesi asla çok güvenli olamaz.

1. Terminali başlatın ve sonra bir root kabuğuna sudo yapın.
sudo -s

2. / var / db / locationd konumuna gidin.
cd /var/db/locationd

3. clients.plist dosyasının bir yedeğini alın
cp -p clients.plist clients.plist.save

4. clients.plist'i xml'ye dönüştürün (düzenlenebilir format)
plutil -convert xml1 clients.plist

5. clients.plist dosyasını düzenlemek ve uygulamayı kaldırmak için vi (vim) kullanın.
vi clients.plist

Dosya muhtemelen birçok uygulama girişi içerecektir. İşte tek bir uygulama girişinin formatı (bu durumda Safari). Tüm girişin silinmesi gerekiyor.

    <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. clients.plist dosyasını tekrar ikili dosyaya dönüştürün
plutil -convert binary1 clients.plist

7. locationd'yi yeniden başlatın
killall locationd

Uygulamalar hala oradaysa, PID'yi aşağıdaki şekilde belirledikten sonra kill -9 kullanarak yeniden başlatma yeri ve yeniden başlatma hariç işlemi tekrar yapın. PID, ps çıkışındaki ikinci alandır.

ps -ef | grep locationd | grep -v grep
Çıktı: 205 427 1 0 6:31PM ?? 0:00.07 /usr/libexec/locationd
kill -9 427

Bir kerede bir uygulamayı kaldırmak için işlemi iki kez koştum. İlk defa, Killall yeterliydi. İkinci kez, değildi. Sebebini bilmiyorum. Locationd bir önbellek saklıyor ve istemcileri yeniden inşa ediyor gibi davranıyordu. Bunu söylediğim için girişler killall - ve hatta yeniden başlatma sırasında çalıştırıldıktan sonra müşterilere geri eklendi. Kök sebep ne olursa olsun, kill -9 kullanmak benim için sorunu çözdü.

İşler kötü giderse, orijinal dosyayı geri kopyalayın ve locationd öğesini yeniden başlatın.
cp -p clients.plist.save clients.plist
killall locationd(veya kill -9 yöntemi)

Umarım bu yardımcı olur. Şerefe!


1
öldür -HUP daha güvenilir olabilir; Bir serve önbelleğini temizlemesini ve config dosyasını tekrar okumasını söyleyen eski öldürme sinyalidir. Killall -HUP lokasyonunun işe yarayacağını gördüm. Diğer ölümlerin işe yaramadığı olası bir neden, önbellek dosyalarının yeni ortaya çıkmış olan işlem tarafından okunmaya bırakılması olabilir.
Nevin Williams

Eğlenceli gerçek: Bu davranışın High Sierra'dan önce var olup olmadığından emin değilim, ancak en azından bu macOS'ta, tercihler bölmesinde artık bulunmayan bir dosyanın işaretini kaldırırsanız, genellikle uygulama artık listede görüntülenmez. Ancak, bu yöntemi kullanarak, sözde silinen bu uygulamaların birçoğunun aslında hala listede bulunmadığını keşfettim.
Doniel,

Ayrıca, bu konuda edindiğim deneyime dayanarak şunu da belirtmeliyim: Bunu bir Tercihler Madenini Sistem Tercihleri'nden çıkarmak için kullanmaya çalıştım, nedenlerden dolayı, ve sonunda kapanana kadar birkaç denemede konumumu istediğini dile getirmeye devam etti. Bunun sebebini, Applescript'te bu kod satırını çalıştırmayı denemeye devam ettiğimi ve bash'ın Sistem Tercihlerimden silinene kadar arka planda çalışmayı sürdürdüğünü ve bash'taki bir sonraki satıra geçtiğini düşünüyorum. Bunların arka planda çalışan birden fazla olduğundan, görünüşe göre, bunu yaparken her birini ayrı ayrı iptal etmek zorunda kaldı.
DonielF

Yanıtlar:


5

Xcode'ın özellik listesi düzenleyicisi eski uygulamaların girişlerini silmek için de kullanılabilir, ancak dosyaya ulaşmak zor olduğundan izinlerin geçici olarak açılması gerekir:

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

böylece dizin ve dosya tüm kullanıcılar tarafından okunup yazılabilir. Ardından, kolaylık olması için giriş kimliğinize uygun olarak bulunun:

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

Bu, Xcode'un * .plist dosyalarını açmak için varsayılan uygulama olduğunu ve Özellik Listesi Düzenleyicisini tanıdığınızı varsayar. Kök özelliği altında 3 varsayılan Sözlük girişi vardır:

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

Bunlar çıkarılmamalı. Uzun süredir devam eden uygulamalara ait girişler için, ilgili uygulamanın satırının Sözlük sütununun hemen solunda, ters bir gri '-' görünecek şekilde gidebilirsiniz. Üzerine tıklamak, eşyayı ve tüm çocuklarını kaldıracak. Öncelikle girişi incelemeyi tercih ediyorsanız, tuş dizisinin solundaki gri üçgene (Finder list-view kullanıcıları için tanıdık) tıklamak Sözlüğü genişletecek ve öğelerini görüntüleyecektir.

Memnuniyetinizin anahtarlarını sildikten veya devre dışı bıraktıktan sonra, dosyayı kaydedin ve Xcode'tan çıkın. Ardından, Terminal'e geri dönün:

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

chmod komutunu geri çağırmak, ctrl-Asatırın başına gitmek, cursor-rightyaklaşık sekiz kez iki kez yukarı gitmek için the + ’değerini change -’ olarak değiştirin ya da izinlerini eski haline getirmek için aşağıdakileri girin:

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

sonra HUP konumu arka plan programı:

 mini-nevie:~ root# killall -HUP locationd

Security.PrefPane Privacy sekmesinin hızlı bir şekilde kontrol edilmesi, değişikliklerinizi onaylamanız gerekir.

Standart feragatnameler, çılgınca uyarıcı hikayeler, azarlamalar, tıkanmalar ve "Bu Yolculuk Gerçekten Gerekli mi?" yansımalar özellikle uygulanabilir.


3

Tccutil kullanımı (OS X Komut Satırı yardımcı programı)

Sanırım bunu yapmanın en hızlı ve en güvenli yolu, OS X komut satırı yardımcı programı tccutil'dir.

  • Yeni bir terminal penceresi aç
  • Açık "Güvenlik ve Gizlilik" ön panel pencerelerini kapatın
  • Aşağıdaki vurgulanan komutlardan yazın veya yapıştırın

Konum servislerini sıfırlayın

tccutil reset CoreLocationAgent

Rehber / adres defterine erişimi sıfırla:

tccutil reset AddressBook

Hatırlatıcılara erişimi sıfırla

tccutil reset Reminders

Takvimlere erişimi sıfırla

tccutil reset Calendar

Ve hepsi bu kadar. Bu arada Sudo'ya gerek yok.


Maalesef benim için çalışmıyor. Veritabanı mesajı sıfırlanamadı.
boğulma

@Strangetimes: Bunu tamamen unutmuştum. Bu bağlantıda belirtilen değiştirilmiş tccutil'i denemedim, ancak bana değecek gibi görünüyor: github.com/jacobsalmela/tccutil
Andreas,

@strangetimes: Çalışmamasının sebebinin, sistemin bütünlüğünün korunmasından kaynaklandığını, github.com/jacobsalmela/tccutil
Andreas

Komut tccutil reset CoreLocationAgentartık işe yaramıyor. Bu konuya bakınız .
nix,

Takvimleri kaldırmak benim için işe yaradı, ancak yeni bir yetki istemek için çalışmıyor. Bunu yapmak için kullanıcı / kütüphane / takvim / takvim önbellek veritabanını kaldırmak zorunda kaldım ve bilgisayarı yeniden
başlattım

1

Bu eski olan ve benim önerdiğim çözüm, yazılan ve kabul edilen olandan teknik olarak farklı değil, fakat otomatikleştirilmesi çok daha az zor ve çok daha kolay (hata ayıklamak için kullanışlıdır). Sadece yap

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

kök olarak.


Benim için çalışıyor. Teşekkürler!
dbv

0

Önceki cevaplara ek olarak, bu sorun yalnızca dosya sahipliğini düzelttikten sonra benim için ortadan kalktı:

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

Sonra bilgisayarı yeniden başlatın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.