Używam encfs do szyfrowania mojej zawartości Dropbox i dlatego chciałbym mieć montowane encfs, gdy użytkownicy logują się, a nie podczas uruchamiania systemu. Jednak nie mogę tego zrobić. Próbowałem:
- Dodanie polecenia mount do .login / .profile. To nie działa, ponieważ te skrypty są uruchamiane podczas uruchamiania powłoki, a nie wtedy, gdy użytkownik loguje się normalnie.
- Dodawanie LoginHook do com.apple.loginwindow. Nie robi to nic oprócz spowolnienia procesu logowania. W plikach dziennika systemu nie ma nic, więc nie jestem pewien, jak to debugować.
- Rzuciłem okiem na / etc / fstab, ale na Mountain Lion ten plik jest pusty, z wyjątkiem ostrzeżenia, że ten plik nie ma żadnego wpływu, więc dodanie do niego niczego nie pomoże.
Dla tych, którzy nie są zaznajomieni z kodowaniem plików, ale znają się na załatwianiu spraw w OSX, zasadniczo to, co muszę uruchomić, aby zamontować zaszyfrowany system plików, to polecenie:
echo password | encfs -S encrypted_dir mount_point
Każda pomoc w ogóle doceniana.
login
osx-mountain-lion
Jochen
źródło
źródło
Odpowiedzi:
Możesz uruchomić dowolny plik wykonywalny podczas logowania (w tym skrypty), dodając go za pomocą Preferencji systemowych -> Użytkownicy i grupy -> Elementy logowania. Nie podawaj skryptu rozszerzenia; użyj nazwy takiej jak
foo
niefoo.sh
. Ponieważ nie ma powiązanego okna do wyświetlania komunikatów o błędach, jeśli coś pójdzie nie tak, radzę przekierowanie stdout i stderr do pliku w / tmp.źródło
Właściwym sposobem na to jest utworzenie usługi launchctl. Nie będziesz mieć otwartych okien terminalu podczas logowania.
Utwórz skrypt,
/usr/local/bin/encfs-mount
aby załadować kodowanie z żądanymi argumentami. Byłoby to podobne do skryptu, który już ładujesz. Na przykład:Utwórz plik usługi w,
~/Library/LaunchAgents/com.arg0.encfs.plist
aby załadować ten skrypt. Zamień naYOUR_USERNAME
swoją nazwę użytkownika:Upewnij się, że encfs jeszcze nie działa (jeśli nie, odmontuj go i zatrzymaj). Następnie uruchom nową usługę:
System plików enfs powinien zostać zamontowany. Sprawdź,
/var/log/system.log
aby rozwiązać problem.źródło