Como montar o encfs no login no OS X Mountain Lion

2

Estou usando o encfs para criptografar meu conteúdo da caixa de depósito e, por essa razão, gostaria de ter o encfs montado quando os usuários fazem login, e não na inicialização do sistema. No entanto, não posso fazer isso funcionar. Eu tentei:

  • Adicionando o comando mount a .login / .profile. Isso não funciona, porque esses scripts são executados quando um shell é inicializado, não quando o usuário efetua login normalmente.
  • Adicionando um LoginHook a com.apple.loginwindow. Isso não faz nada, exceto diminuir o meu processo de login. Não há nada nos arquivos de log do sistema, então não sei como depurar isso.
  • Eu dei uma olhada no / etc / fstab, mas no Mountain Lion esse arquivo está vazio, exceto pelo aviso de que este arquivo não tem efeito algum, então adicionar algo a ele não ajudará.

Para quem não está familiarizado com o encfs, mas está familiarizado com a realização de tarefas no OSX, essencialmente o que eu tenho que executar para montar o sistema de arquivos criptografado é este comando:

echo password | encfs -S encrypted_dir mount_point

Qualquer ajuda apreciada de todo.

    
por Jochen 14.08.2012 / 01:24

2 respostas

1

Você pode executar qualquer executável no login (incluindo scripts) adicionando-o através das Preferências do Sistema - > Usuários & Grupos - > Itens de Login. Não dê ao script uma extensão; use um nome como foo not foo.sh . Como não há nenhuma janela associada para exibir mensagens de erro se algo der errado, aconselho redirecionar stdout e stderr para um arquivo em / tmp.

    
por 14.08.2012 / 04:00
3

A maneira correta de fazer isso é criar um serviço launchctl. Você não terá janelas do Terminal abertas no login.

Crie um script /usr/local/bin/encfs-mount para carregar o encfs com os argumentos desejados. Isso seria semelhante ao script que você já está carregando. Por exemplo:

#!/bin/bash
/usr/local/bin/encfs -f --ondemand --extpass="security 2>&1 >/dev/null find-generic-password -gl encfs | grep password | cut -d \\" -f 2" -i 15 ~/.sync ~/sync

Note that the above script uses the OSX Keychain via the security command to provide the password, rather than saving it in this script. To add the password, open the Keychain Access tool, and add an application named encfs to one of your keychains. Use your login keychain if you never want to be prompted for the password, the System keychain if you want to be prompted for the encfs password every time it mounts the filesystem with --ondemand, or a new keychain if you want it to have its own password. See http://widerin.org/blog/secure-your-dropbox.

Crie um arquivo de serviço em ~/Library/LaunchAgents/com.arg0.encfs.plist para carregar esse script. Substitua YOUR_USERNAME pelo seu nome de usuário:

<?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>com.arg0.encfs</string>
   <key>Program</key>
   <string>/usr/local/bin/encfs-mount</string>
   <key>KeepAlive</key>
   <true/>
   <key>UserName</key>
   <string>YOUR_USERNAME</string>
</dict>
</plist>

Certifique-se de que o encfs ainda não esteja em execução (se não, desmonte-o e pare-o). Então inicie o novo serviço:

launchctl load ~/Library/LaunchAgents/com.arg0.encfs.plist

Seu sistema de arquivos encfs deve ser montado. Verifique /var/log/system.log para solucionar problemas.

    
por 25.09.2013 / 23:37