ฉันจะเมานต์รูปภาพที่เข้ารหัสก่อนโหลด Finder ได้หรือไม่


1

ฉันมีโฟลเดอร์ ~ ส่วนใหญ่ของฉันในอิมเมจดิสก์บันเดิลที่เข้ารหัส ฉันได้ตั้งค่าให้ automount ผ่าน Prefs & gt; ผู้ใช้ แต่โหลด AFTER Finder แล้วเดสก์ท็อปของฉันจึงว่างเปล่าเว้นแต่ฉันจะบังคับให้เปิดใช้งาน Finder

มีวิธีใดบ้าง (ผ่านทางบรรทัดคำสั่งฉันคาดเดา) เพื่อให้ระบบปฏิบัติการติดตั้งอิมเมจของดิสก์นี้เป็นครั้งแรกเมื่อทำการเข้าสู่ระบบก่อนที่จะมีการเปิดตัวรวมถึง Finder


มีเหตุผลที่เฉพาะเจาะจงว่าทำไมคุณไม่ใช้ FileVault 2 (ซึ่งส่วนใหญ่อาจจะแก้ปัญหาของคุณในลักษณะพื้นฐานเพิ่มเติม)?
nohillside

@patrix รูปภาพอยู่บนไดรฟ์ที่สอง (ไม่ใช่ไดรฟ์ระบบปฏิบัติการ) และฉันไม่ต้องการเข้ารหัสโฟลเดอร์หลักของผู้ใช้รายอื่น AFAIK สิ่งนี้ดักจับการใช้ FV
Ze'ev

คำตอบที่ให้นั้นแก้คำถามของคุณหรือไม่ ดูเหมือนว่าโซลูชันจะทำงานตามที่อธิบายไว้และตามด้วยข้อกำหนดที่ต้องปฏิบัติตามเพื่อติดตั้งเฉพาะเมื่อผู้ใช้รายหนึ่งล็อกอิน
bmike

คำตอบ:


5

การติดตั้ง sparsebundle สามารถทำได้ผ่านบรรทัดคำสั่งโดยใช้คำสั่ง 'hdiutil' คุณยังสามารถสร้างเชลล์สคริปต์ที่จะดำเนินการนี้ สคริปต์นี้สันนิษฐานว่าภาพอยู่ที่ /Users/somebody/Image.sparsebundle และวลีรหัสผ่านที่ใช้ในการเข้ารหัสภาพคือ "testpass")

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

หลังจากสร้างสคริปต์นั้นใน text-editor คุณสามารถเปลี่ยนการอนุญาตของไฟล์เพื่อให้สามารถเรียกใช้งานได้ สมมติว่าสคริปต์นี้ถูกสร้างที่ / Users / somebody / MountSparsebundle คุณสามารถใช้ Terminal เพื่อให้สามารถเรียกใช้งาน

chmod 755 /Users/somebody/MountSparsebundle

เมื่อคุณสร้างไฟล์ที่ปฏิบัติการได้แล้วคุณควรจะสามารถเรียกใช้คำสั่งโดยใช้ Terminal ได้ ใน Terminal ให้พิมพ์พา ธ แบบเต็มของสคริปต์เพื่อเรียกใช้งาน:

/Users/somebody/MountSparsebundle

สคริปต์ควรรันและทำให้ sparsebundle ติดตั้ง โปรดทราบว่าคุณจะต้องการยกเลิกการต่อเชื่อม sparsebundle ก่อนที่จะเรียกใช้สคริปต์ (เพื่อยืนยันว่าสคริปต์นั้นกำลังเมานท์เมื่อคุณใช้สคริปต์)

หลังจากตรวจสอบว่าสคริปต์ทำงานอยู่คุณสามารถสร้าง LaunchDaemon ที่จะรับผิดชอบในการติดตั้ง sparsebundle นี้ในการบูต ไฟล์การกำหนดค่า LaunchDaemon ควรติดตั้งใน / Library / LaunchDaemons ซึ่งจะทำให้โหลดก่อนการลงชื่อเข้าใช้ นี่คือตัวอย่างของไฟล์การกำหนดค่า launchd ที่รันสคริปต์อยู่ที่ / Users / บางคนเรียกว่า "MountSparsebundle":

<?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>

ขั้นตอนสุดท้ายที่คุณต้องดำเนินการคือการกำหนดค่าระบบ launchd เพื่อโหลด daemon เริ่มต้นตอนบูต สามารถทำได้โดยใช้ launchctl (สมมติว่าไฟล์ในขั้นตอนก่อนหน้านี้ได้รับการบันทึกไว้ใน

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

หรือคุณสามารถใช้ LoginHook ซึ่งจะระงับการเปิดตัว Finder จนกว่าสคริปต์การเข้าสู่ระบบจะออก แม้ว่า Apple จะไม่แนะนำให้ใช้ LoginHook แต่สามารถใช้เพื่อทำสิ่งที่คุณต้องการได้ คุณสามารถตั้งค่าสคริปต์ที่กล่าวถึงข้างต้นว่าเป็น hook การเข้าสู่ระบบโดยใช้คำสั่งเริ่มต้น:

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

หมายเหตุ: LoginHooks ทำงานเป็นรูทซึ่งเป็นสิ่งที่มีความเสี่ยงด้านความปลอดภัย ... อย่างไรก็ตามสิ่งนี้จะช่วยให้คุณสามารถตรวจสอบผู้ใช้ปัจจุบันที่กำลังเข้าสู่ระบบ ต่อไปนี้เป็นสคริปต์ที่ได้รับการแก้ไขซึ่งแสดงตัวอย่างวิธีแยกชื่อผู้ใช้ที่ลงชื่อเข้าใช้ (ซึ่งส่งผ่านไปยังสคริปต์เป็นอาร์กิวเมนต์ $ 1):

#!/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

ว้าวขอบคุณสำหรับข้อมูลทั้งหมด แต่ ... ถ้าไฟล์ launchd อยู่ที่ /Library/LaunchDaemons ... มันจะเพิ่มระดับเสียงที่บูตหรือเมื่อฉันเข้าสู่ระบบ?
Ze'ev

@ Ze'ev, launchd รันตอนบูท ในความเป็นจริงมันเป็นกระบวนการแรกที่เริ่มต้นหลังจากเคอร์เนลโหลด
Andrew Larsson

@AndrewLarsson ดังนั้นวิธีนี้จะไม่ทำงานใช่ไหม มีวิธีเมานต์วอลลุ่มหรือไม่ ผม เข้าสู่ระบบ, ก่อน โหลดตัวค้นหาหรือไม่
Ze'ev

@ Ze'ev มันจะทำงานได้เพราะไดรฟ์ของคุณจะถูกถอดรหัสก่อนที่ Finder จะเริ่มต้น ไม่สำคัญว่าจะเป็นเมื่อนานเท่าที่จะเป็นไปได้
Andrew Larsson

1
ฉันได้อัปเดตคำตอบพร้อมคำแนะนำเพิ่มเติมแล้ว (LoginHook)
Eddie Kelley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.