Finder yüklenmeden ÖNCE şifreli bir görüntü ekleyebilir miyim?


1

~ Klasörümün çoğunu şifreli, seyrek bir disk görüntüde var. Tercihler & gt; Kullanıcılar aracılığıyla automount olarak ayarladım ancak Finder'dan sonra yüklüyor, bu yüzden Finder'ı yeniden başlatmaya zorlamadığım sürece Desktop'ım boş.

Bulucu da dahil olmak üzere herhangi bir şey başlatılmadan önce, işletim sistemine giriş yaparken bu disk görüntüsünü İLK monte etmenin bir yolu var mı (komut satırı aracılığıyla tahmin ediyorum)?


FileVault 2'yi kullanmamanızın belirli bir nedeni var (bu muhtemelen sorununuzu daha basit bir şekilde çözer).
nohillside

@ patrix Görüntü ikinci bir sürücüde (işletim sistemi sürücüsü değil) bulunur ve diğer kullanıcıların giriş klasörlerini şifrelemek istemiyorum. AFAIK, bu FV kullanımını engellemektedir.
Ze'ev

Verilen cevap sorunuzu çözüyor mu? Çözümün tanımlandığı gibi çalıştığını ve aynı zamanda yalnızca bir kullanıcı oturum açtığında monte etme gerekliliği ile çalıştığını gösteriyor.
bmike

Yanıtlar:


5

Sparsebundle montajı 'hdiutil' komutu ile komut satırı üzerinden gerçekleştirilebilir. Bu işlemi gerçekleştirecek bir kabuk betiği de oluşturabilirsiniz. Bu komut dosyası, görüntünün /Users/somebody/Image.sparsebundle konumunda olduğunu ve görüntüyü şifrelemek için kullanılan parolanın "testpass" olduğunu varsayar):

#!/bin/bash
#
# This script mounts the disk image at /Users/somebody/Image.sparsebundle
#
echo -n testpass | hdiutil mount /Users/somebody/Image.sparsebundle

Bu komut dosyasını bir metin düzenleyicide oluşturduktan sonra, yürütülmesine izin vermek için dosyanın izinlerini değiştirebilirsiniz. Bu betiğin / Users / somebody / MountSparsebundle konumunda oluşturulduğunu varsayarsak, yürütülebilir kılmak için Terminal'i kullanabilirsiniz:

chmod 755 /Users/somebody/MountSparsebundle

Dosyayı çalıştırılabilir hale getirdikten sonra, Terminal'i kullanarak komutu çalıştırabilmelisiniz. Terminal'de yürütmek için komut dosyasının tam yolunu yazın:

/Users/somebody/MountSparsebundle

Komut dosyası çalışmalı ve sparsebundle'ın dağılmasına neden olmalıdır. Komut dosyasını çalıştırmadan önce bu sparebundle öğesinin bağlantısını kaldırmak istediğinizi unutmayın (komut dosyasını kullanırken bunun montaj olduğunu onaylamak için).

Komut dosyasının çalıştığını doğruladıktan sonra, bu sparsebundle'u önyüklemede monte etmekten sorumlu olacak bir LaunchDaemon oluşturabilirsiniz. LaunchDaemon yapılandırma dosyası / Library / LaunchDaemons dizinine kurulmalıdır, bu da login penceresinden önce yüklenmesine neden olacaktır. Aşağıda, "MountSparsebundle" adlı / Users / sombody konumunda bulunan bir komut dosyasını çalıştıran bir başlatılmış yapılandırma dosyasına bir örnek verilmiştir:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
    <key>Label</key>
    <string>com.example.mountsparsebundle</string>
    <key>Program</key>
    <string>/Users/somebody/MountSparsebundle</string>
</dict>
</plist>

Atmanız gereken son adım, başlatma sırasında bu başlatma hizmetini yüklemek için başlatma sistemini yapılandırmak olacaktır. Bu, launchctl (Bir önceki adımdaki dosyanın "/Library/LaunchDaemons/com.example.mountsparsebundle.plist" konumuna kaydedildiğini varsayarak) kullanılarak gerçekleştirilebilir:

sudo launchctl load -w /Library/LaunchDaemons/com.example.mountsparsebundle.plist

Alternatif olarak, oturum açma komut dosyası çıkana kadar Finder'ın başlatılmasını askıya alacak olan bir LoginHook kullanabilirsiniz. Apple, LoginHooks'u önermese de, yapmaya çalıştığınız şeyi başarmak için kullanılabilir. Defaults komutunu kullanarak yukarıda belirtilen komut dosyasını giriş kancası olarak ayarlayabilirsiniz:

sudo defaults write com.apple.loginwindow LoginHook /Users/somebody/MountSparsebundle

Not: LoginHooks, güvenlik riski taşıyan bir şey olan root olarak çalıştırılır ... Ancak, bu aynı zamanda giriş yapan mevcut kullanıcıyı (betiğin bir parçası olarak) incelemenizi ve kullanıcı kimlik bilgilerine göre eylemler gerçekleştirmenizi sağlar. İşte giriş yapan kullanıcı adının nasıl ayrıştırılacağına dair bir örnek gösteren değiştirilmiş bir betik: (betiğe $ 1 argümanı olarak geçirilir):

#!/bin/bash
#
# This script mounts the disk image at /Users/somebody/Image.sparsebundle
#
if [ "$1" == "somebody" ]; then
    echo -n testpass | hdiutil mount /Users/somebody/Image.sparsebundle
fi

Vay, tüm bilgi için teşekkürler. Ama ... eğer başlatma dosyası ise /Library/LaunchDaemons ... Sesi BOOT'a mı, yoksa GİRİŞ YAPTIĞIMDA?
Ze'ev

@ Ze'ev, lansman açılışta çalışıyor. Aslında, çekirdek yüklendikten sonra başlayan ilk işlemdir.
Andrew Larsson

@AndrewLarsson Yani bu çözüm işe yaramayacak, değil mi? Bir birimi monte etmenin bir yolu var mı? ben oturum aç, önce Bulucu yük mü?
Ze'ev

@ Ze'ev, Çalışacak, çünkü Bulucu başlamadan önce sürücünüzün şifresi çözülecek. Daha önce olduğu zaman, ne zaman olduğu önemli değil.
Andrew Larsson

1
Yanıtı ek önerilerle (LoginHook) güncelledim.
Eddie Kelley
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.