Сначала сделайте том с помощью ключевого файла и пустого пароля в меню «Инструменты»> «Изменить пароль тома». Затем сохраните список свойств примерно так:~/Library/LaunchAgents/truecrypt.plist
:
<?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>Label</key>
<string>truecrypt</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>diskutil list | grep -Fq ' *1.1 GB ' && exit # an asterisk indicates that the volume is mounted
disk=$(diskutil list | awk '/ 1.1 GB /{print $NF}')
[[ $disk ]] || exit
/Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt --mount /dev/$disk -k ~/path/to/keyfile -p ''</string>
</array>
<key>StartOnMount</key>
<true/>
</dict>
</plist>
Измените 1.1 GB
на размер тома, отображаемый в diskutil list
. Возможно, существует более удобный способ определения тома, но, например, в diskutil info /dev/disk1s4
не показан UUID для тома, с которым я тестировал.
Затем включите агент, запустив launchctl load ~/Library/LaunchAgents/truecrypt.plist
или выйдя из системы и вернувшись обратно. Вы должны выгрузить и загрузить список, чтобы применить к нему изменения.
Предостережения:
- Когда команда
truecrypt
запускается впервые после входа в систему, она запрашивает пароль учетной записи администратора, даже если она запускается от имени пользователя root. Это может раздражать, если вы выходите из системы или часто перезагружаетесь.
- Задание launchd запускается при подключении любого тома, поэтому, если вы отключите том TrueCrypt (но оставите подключенный внешний диск) и подключите другой том, том TrueCrypt подключится снова.
Или вы могли бы просто зашифровать том с помощью FileVault? Если вы отметите "Запомнить этот пароль в моей цепочке для ключей", том будет смонтирован автоматически, пока цепочка для ключей входа разблокирована.
Это также означает, что если цепочка для ключей входа в систему разблокирована, другие люди, имеющие доступ к вашему компьютеру, могут увидеть пароль, например, с помощью команды security find-generic-password -l "My FileVault volume" -w
.
Изменить: не было особой причины, почему я использовал ключевой файл и пустой пароль в приведенном выше примере. Чтобы использовать пароль без ключевого файла, замените TrueCrypt --mount /dev/$disk -k ~/path/to/keyfile -p ''
например, TrueCrypt --mount /dev/$disk -p pa55word
. Или замените pa55word
на "$(security find-generic-password -l "My TrueCrypt volume" -w)"
и используйте Keychain Access, чтобы добавить элемент цепочки для ключей для пароля: