我在 Windows 共享上有一个 TrueCrypt 容器,我正尝试从 Ubuntu 挂载它。但是,我始终收到“权限被拒绝”错误。
我在用服务器/路径/到/容器上的 /home/kent/.gvfs/share作为路径。我尝试使用默认选项进行安装、以只读方式安装以及安装到特定目录。无论如何,我都会收到相同的错误。
如果我将容器复制到本地 Ubuntu 机器,那么我可以挂载它并访问它,不会出现问题。在 Windows 桌面上,我可以通过网络挂载它,不会出现问题。
我如何通过网络从 Ubuntu 安装此容器?
答案1
.gvfs 是一个虚拟挂载点,不属于您的登录用户(因此您没有写入权限)。您需要手动设置挂载点,例如
$ sudo mount -t cifs //server/share /mnt -o username=windowsuser,password=windowspassword
一旦您有了这个,您就可以从那里安装卷(在此示例中为 /mnt)并且它应该按预期工作。
答案2
我在 Ubuntu 论坛上发布了这个答案,但由于我在这里也发现了未解答的问题,所以我或多或少在这里复制了相同的答案......
其实解决办法再简单不过了,你只需要在“mount”命令中添加一个选项:
uid={本地用户名}
完整命令(对于 CIFS/SMB 而言)如下:
sudo mount-t cifs//{主持人}/*{分享}*{本地挂载点}-o 用户={远程用户名},uid={本地用户名}
注意:如果不将密码作为选项(在我看来,始终避免以明文形式传输密码和/或以 bash 历史记录收集的方式传输密码是一个好主意),此命令将提示您输入远程密码(当然,首先提示您输入 sudo 密码)。
所有这些操作都以您(用户)可以读取和写入的方式挂载共享。然后,TrueCrypt(或 EncFS 或其他 FUSE 模块)就可以毫无问题地访问存储在该共享上的加密卷(当然,假设没有其他问题)。
我不知道为什么互联网上没有广泛讨论这个问题。在互联网上搜索这个特定问题无果之后,我不得不翻遍 mount 手册页才发现这一点。
这也不是黑客或变通方法。它是如何山被设计用来工作。
我还应该指出,这里讨论的先前解决方案具有潜在危险,因为它消除了 FUSE 内置的基于用户的安全性,而 TrueCrypt(和其他 FUSE 模块,如 EncFS)依赖该安全性:也就是说,默认情况下只有当前用户可以看到已安装的卷!修改 /etc/fuse.conf 以添加“user_allow_other”,并在命令行上指定“allow_other”,可覆盖此行为并允许任何用户查看解密后的数据。如果您首先加密了数据,则很有可能不希望出现此副作用。
答案3
尝试将“user_allow_other”添加到 /etc/fuse.conf,并使用“allow_other”选项挂载。
答案4
Truecrypt 基于 FUSE - 这是一种用户空间文件系统。简而言之:只有用户才有权限访问已安装的卷。为了使 SMB 访问文件夹,您必须在文件创建事件中使用默认掩码来避免守护进程的权限设置功能:
force create mode 770
确保在 Windows 上相应地导出卷:Truecrypt 在 Windows 上使用的挂载点也是用户特定的。这意味着您的 ActiveDirectory Daemon 或您选择的任何程序(例如,以许可身份运行)SYSTEM
需要宽容的权限才能访问挂载点:在 Windows 上执行右键单击,设置权限,然后重新挂载 TC 容器。这应该可以解决双方的问题 ;)