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

Как я могу сделать 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{i delete the guid}
DokanRemoveMountPoint C:\Users\dabb\AppData\Local\Temp\decrypttemp
DokanControl recieved DeviceName:\Volume{i delete the guid}
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

3 ответа

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

Кажется, что файл конфигурации не может быть открыт, потому что enc4fs читает имя файла в кавычках из переменной среды и передает его в программу чтения конфигурации без изменений. Так он пытается открыть

"C:/test1/.encfs6.xml"

вместо

с: /test1/.encfs6.xml

Копание немного похоже на проблему повышения. Надеюсь, кто-нибудь внесет исправление.

Я только попробовал это и установил ENCFS6_CONFIG как системную переменную в системных настройках. Я установил это

d:\.encfs6.xml

и после удаления XML-файла из зашифрованного каталога он все еще монтирует его. Решил проблему для меня.

Другие вопросы по тегам