Как я могу сохранить encfs6.xml в другом месте (и при этом сделать его обнаружимым)?

4824
olitzadobric

Как я могу сделать encfs4winпоиск encfs6файла в другом месте?
Я попытался изменить encfs_mount.cmdфайл в конце, например, так:

set ENCFS6_CONFIG=c:/test1/.encfs6.xml  %pathtoencfs%encfs -f -v -d "%crypt%" "%decrypt%" 

где crypt = c:\test4 and decrypt = J:.

Если у меня есть правильный encfs6файл, c:\test4то объем монтируется независимо от того, добавляю ли я set ...строку. Но если я переместу encfs6файл, c:\test1тогда приложение доберется до точки, где оно запрашивает пароль, а затем ничего не делает, и затем я закрываю его; диск, кажется, не установлен. Я уверен, что ENCFSпеременная обнаружена, потому что, если я использую ее так: set ENCFS6_CONFIG=c:/test1/я получаю что-то вроде строки, "found config file c:\test1\ but failed to load"так что переменная имеет некоторый эффект.

Заранее спасибо.
edit1: Кстати, если вы собираетесь проверить, убедитесь, что вы запускаете все команды / исполняемый файл от имени администратора

edit2: я попробовал на другом ПК.
Я создал и смонтировал диск, используя слегка измененную версию encfs_mount.cmdфайла

@echo off rem Batch file for mounting encfs encrypted folders title encfs: Mount an encrypted folder to a decrypted one

rem Check if Windows XP or Windows 7 rem XP: C:\Documents and Settings (or language specific folder) rem 7: C:\Users

set oprsystem=%appdata:~3,5% if %oprsystem%==Users ( set ops=win7 ) else ( set ops=winxp )

set ininumber=1 rem An ini file will be created for future access if not exist encfs.ini goto firsttime set ininumber=0

rem List existing encrypted / decrypted folder pairs echo Already existing encrypted / decrypted folder pairs: echo. for /F "tokens=1,2,3,4 delims=µ" %%i in (encfs.ini) do ( echo No.: %%i Name: %%j echo Encrypted folder: %%k echo Decrypted folder: %%l echo. ) echo. echo Choose which pair should be mounted. echo Type the corresponding number and press ENTER echo Just press ENTER if you want to create a new pair. echo.

set /p ininumber=Type number:

set new=yes for /F "tokens=1,2,3,4 delims=µ" %%i in (encfs.ini) do ( if %%i==%ininumber% ( set crypt=%%k set decrypt=%%l set pair=%%j set new=no ) set number=%%i )

if %new%==no goto mount rem Increment ininumber for new folder pair set /a ininumber= %number% + 1

:firsttime rem First time use rem Ask for folder locations

cls echo Please enter the location for the folder echo that will contain the encrypted files and press ENTER: echo [e.g. d:\crypt - don't use a trailing backslash] echo.

set /p crypt=

echo. if %ops%==win7 echo Please enter the location for the drive if %ops%==winxp echo Please enter the location for the folder echo where you want to be able to access the decrypted files and press ENTER. if %ops%==win7 echo [e.g. x: - don't use a trailing backslash] if %ops%==winxp echo [e.g. d:\plain or x: - don't use a trailing backslash] echo.

set /p decrypt=

echo. echo Please enter a name for the encrypted / decrypted folder pair and press ENTER echo [e.g. Secret Files] echo.

set /p pair=

echo. echo. echo.

echo %ininumber%µ%pair%µ%crypt%µ%decrypt%>>encfs.ini

:mount cls echo Mount "%crypt%" to "%decrypt%" if not exist "%crypt%" md "%crypt%" rem If decrypt folder is a drive and encfs is on its first run decrypt folder is set to a temp folder set lastchar=%decrypt:~-1% if "%lastchar%"==":" ( if not exist "%crypt%.encfs6.xml" ( set decrypt="%temp%\decrypttemp" if not exist "%temp%\decrypttemp" md "%temp%\decrypttemp" echo. echo IMPORTANT echo After initialising encfs for the first time echo please close this window and start "encfs_mount" again echo. pause echo. ) ) else ( if not exist "%decrypt%" md "%decrypt%" )

rem Mount encfs set pathtoencfs=M:\kit\encfs4w\encfs4win\ set pathtolog=M:\kit\encfs4w\encfs4win\ set pathtowtee=M:\kit_util\ echo. set ENCFS6_CONFIG=M:\test4.encfs6.xml (%pathtoencfs%encfs -f -v -d "%crypt%" "%decrypt%") 2>&1 | %pathtowtee%wtee.exe -a %pathtolog%log.txt

echo.

так на этом новом компьютере% crypt% = m: \ test1 и% decrypt% = j:

и вот файл журнала

 20:57:27 (main.cpp:521) Root directory: m:\test1/ 20:57:27 (main.cpp:522) Fuse arguments: (fg) (threaded) (keyCheck) M:\kit\encfs4w\encfs4win\encfs C:\Users\dabb\AppData\Local\Temp\decrypttemp -f -d -s -o use_ino -o default_permissions  20:57:27 (FileUtils.cpp:177) version = 20 20:57:27 (FileUtils.cpp:181) found new serialization format 20:57:27 (FileUtils.cpp:199) subVersion = 20100713 20:57:27 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0) 20:57:27 (SSL_Cipher.cpp:372) allocated cipher ssl/aes, keySize 24, ivlength 16 20:57:27 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0) 20:57:27 (SSL_Cipher.cpp:372) allocated cipher ssl/aes, keySize 24, ivlength 16 20:57:27 (FileUtils.cpp:1621) useStdin: 0 EncFS Password: 20:57:31 (Interface.cpp:165) checking if ssl/aes(3:0:2) implements ssl/aes(3:0:0) 20:57:31 (SSL_Cipher.cpp:372) allocated cipher ssl/aes, keySize 24, ivlength 16 20:57:31 (openssl.cpp:49) Allocating 41 locks for OpenSSL 20:57:31 (FileUtils.cpp:1627) cipher key size = 44 20:57:31 (Interface.cpp:165) checking if nameio/block(3:0:1) implements nameio/block(3:0:0)  Dokan: debug mode on Dokan: use stderr device opened mounted: C:\Users\dabb\AppData\Local\Temp\decrypttemp -> \Volume DokanRemoveMountPoint C:\Users\dabb\AppData\Local\Temp\decrypttemp DokanControl recieved DeviceName:\Volume send release ^C 

ОБНОВЛЕНИЕ 3: воу, я не могу поверить, что ни у кого нет этой проблемы с нестандартными местоположениями для .encfs6.xml. Просто чтобы прояснить это, несмотря на монтировку, выполненную DOKAN, накопитель не появляется в моем компе

ОБНОВЛЕНИЕ 4: пока я нашел обходной путь. Вместо того чтобы хранить файл 'encfs6' в другом месте, отличном от того, в котором находятся зашифрованные файлы, я сохраняю зашифрованный контент в папке, которая находится в другом месте. И я создаю соединение каталога, которое указывает на зашифрованный контент, и сохраняю это в папке с файлом 'encfs6'.

Итак, сначала у меня есть

Зашифрованная папка | --- .encfs6.xml  | --- file1 (scrambledname)  | --- file2 (шифрованное имя)  

тогда я создаю папку

Зашифрованная папка | --- .encfs6.xml  | --- file1 (scrambledname)  | --- file2 (шифрованное имя) | --- folder1 (scrambledname)  

я перемещаю весь контент, кроме как folder1 (scrambledname)во внешнюю папку (Dropbox)

Зашифрованная папка | --- .encfs6.xml | --- folder1 (scrambledname)  

после этого я folder1(scrambledname)копирую имя s и использую его для создания соединения каталога с папкой dropbox wuala teamdriver и т. д. Конечно, вы должны удалить folder1 до этого, потому что место соединения должно занимать место папки и трюк encfs4win.

Зашифрованная папка | --- .encfs6.xml | --- folder1 (scrambledname; это переход к папке dropbox)  

я все еще хочу решить проблему с ENCFS6_CONFIG

1

3 ответа на вопрос

1
David

Вы должны установить ENCFS6_CONFIG с относительным путем к корневому каталогу. Например, ENCFS6_CONFIG = .. / .. / Directory1 / .encfs6.xml

0
Ruslan Yushchenko

It seems the configuration file cannot be opened because enc4fs reads quoted file name from environment variable and passes it to configuration reader unchanged. So it tries to open

"c:/test1/.encfs6.xml"

instead of

c:/test1/.encfs6.xml

Digging a bit it looks like a boost problem. Hope somebody will contribute a fix.

0
Mat

I just tried it and set ENCFS6_CONFIG as a system variable in the system settings. I've set it to

d:\.encfs6.xml 

and after removing the xml file from the encrypted directory it still mounts it. Solved the problem for me.

Похожие вопросы