我如何将 encfs6.xml 存储在另一个位置(并且仍然使其可检测到)?

我如何将 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
:顺便说一句,如果您打算测试,请确保以管理员身份运行所有命令/可执行文件

编辑2:我在另一台电脑上尝试过。我使用稍作修改的文件
版本创建并安装了驱动器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 (加密名称)  
               |--- file2 (加密名称)  

然后我创建文件夹

加密文件夹 |--- .encfs6.xml    
                    |--- file1 (加密名称)  
                    |--- file2 (加密名称)
                    |--- 文件夹 1 (乱码名称)
                      

folder1 (scrambledname)我将除外部文件夹(Dropbox) 之外的所有内容都移动

加密文件夹|--- .encfs6.xml
               |--- 文件夹 1 (乱码名称)
                      

之后我复制了 folder1(scrambledname)s 的名称,并用它来创建到 dropbox wuala teamdriver 等文件夹的目录连接。当然,您必须在此之前删除 folder1,因为连接必须取代文件夹的位置并欺骗 encfs4win。

加密文件夹|--- .encfs6.xml
               |--- folder1(乱码名称;这是 Dropbox 文件夹的连接点)
                      

我仍然想解决 ENCFS6_CONFIG 的问题

答案1

您应该使用根目录的相对路径设置 ENCFS6_CONFIG。例如,ENCFS6_CONFIG=../../Directory1/.encfs6.xml

答案2

似乎无法打开配置文件,因为 enc4fs 从环境变量中读取引用的文件名并将其不加改变地传递给配置读取器。因此它尝试打开

“c:/test1/.encfs6.xml”

代替

c:/test1/.encfs6.xml

仔细研究后发现似乎是 boost 的问题。希望有人能帮忙修复。

答案3

我刚刚尝试了一下,在系统设置中将 ENCFS6_CONFIG 设置为系统变量。我已将其设置为

d:\.encfs6.xml

从加密目录中删除 xml 文件后,它仍会挂载该文件。为我解决了这个问题。

相关内容