使用 Ubuntu 16.04 和 Azure(同一区域)安装错误 13

使用 Ubuntu 16.04 和 Azure(同一区域)安装错误 13

我正在尝试使用 Azure 提供的连接字符串在共享文件夹旁边挂载 Samba 共享,但在 16.04 中,我收到“挂载错误 13,权限被拒绝”

安装 cifs-utils 后,连接字符串的工作方式与我预期的完全一样Ubuntu 服务器 17.04

连接字符串:

sudo mount -t cifs //<HOSTNAME>.file.core.windows.net/<SHARENAME> /mnt/etclol -o vers=3.0,username=<HOSTNAME>,password=<PASSWORD KEY>,dir_mode=0777,file_mode=0777,sec=ntlmssp

我知道 16.04 中存在一个问题,它会阻止外部连接以及基于 Azure 的 VM 的跨区域连接,而该问题涉及 16.04 内核不支持的加密。所以我解决了这个问题:

我将存储节点从 GRS(地理冗余存储)更改为 LRS(本地冗余存储),这使我的区域从两个(美国东部和美国中部)减少到只有美国中部(与我的网络服务器相同)。

尝试在同一区域和 Azure 内部挂载这些共享时,我不断收到挂载错误 13。我看过的每篇文章都让我相信这种配置可行。

为了验证这不是本地安装问题,我尝试了 chmod 0777 安装以及我的主目录中的目录。我认为这没什么关系。

我唯一的其他选择是将实时 16.04 服务器迁移到 17.04,这虽然可行,但却很无趣。

TL;DR:为什么这在他们提议的基础设施层次结构中不起作用。补充:有没有办法获得 16.04外部也可以工作吗?

答案1

据我所知,Ubuntu 16.04 LTS 支持 SMB 3.0 的加密功能。

也许我们可以按照以下步骤挂载 Azure 文件共享:
1.安装cifs-utils包:

sudo apt-get update  #we should update it then install cifs-utils
sudo apt-get install cifs-utils

2.为挂载点创建一个文件夹:

mkdir mymountpoint

3.使用 mount 命令挂载 Azure 文件共享:

sudo mount -t cifs //<storage-account-name>.file.core.windows.net/<share-name> ./mymountpoint -o vers=3.0,username=<storage-account-name>,password=<storage-account-key>,dir_mode=0777,file_mode=0777,serverino

有关在 Linux 中使用 Azure 文件存储的更多信息,请参阅此关联

===========================================================
更新
目前,Azure 存储帐户支持“需要安全传输”,此功能用于 SMB 2.1、无加密的 SMB 3.0 以及某些版本的 Linux SMB 客户端。

默认情况下,ubuntu 16.04 支持 SMB 3.0 的加密功能。所以我们应该需要安全传输,并直接安装。

Ubuntu 16.04LTS 仅支持密码加密对于 SMB – 因此访问 Azure 文件存储的凭据是加密的,但数据本身作为明文

使用 Azure 文件服务时,如果启用“需要安全传输”,则任何未加密的连接都会失败。这包括使用 SMB 2.1、未加密的 SMB 3.0 以及某些 Linux SMB 客户端的场景。默认情况下,“需要安全传输”选项处于禁用状态。

关于 Linux 的 Azure 文件存储,请参考此关联

有关更多信息Require secure transfer,请参阅此关联

答案2

我在生产服务器上遇到了同样的问题。我们决定将 Ubuntu 16.04 LTS 升级到Ubuntu 16.10(我验证了启用安全传输的安装是否可行)。我知道这不是一个容易的解决方案,但只有它对我有用。

好的一面是,从 16.04 升级到 16.10 比从 16.04 升级到 17.04 更“安全”;)

答案3

在 Azure Linux VM 中装载文件共享需要以下清单

  1. VM 必须位于创建存储帐户的同一区域
  2. 虚拟机上的端口 445 应处于打开状态
  3. cifs-utils.x86_64应安装在 Linux VM 上以访问 cifs 共享
  4. 如果使用 RHEL 7.2,则使用 smb 2.1,如果使用 7.4 及以上版本,则使用 smb 3.0
  5. 在存储帐户中 ---> 转到设置 --> 配置 --> 需要安全传输 ---> 禁用,然后共享已在 Linux vm 中安装

相关内容