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