你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
NFS 文件共享的权限由客户端 OS(而不是 Azure 文件存储服务)强制执行。 根 Squash 是 NFS 中的一项管理安全功能,可防止客户端计算机对 NFS 服务器进行未经授权的根级别访问。 此功能是保护用户数据和系统设置免遭不受信任的或遭入侵的客户端操纵的重要一环。
管理员应该在多个用户或系统访问 NFS 共享的环境中启用根 Squash,特别是在客户端计算机不是完全受信任的情况下。 通过将根用户转换为匿名用户,根 Squash 可确保即使在客户端计算机遭入侵的情况下,攻击者也无法利用根权限访问或修改 NFS 服务器上的关键文件。
本文介绍如何配置和更改 NFS Azure 文件共享的根 Squash 设置。
适用于
管理模型 | 计费模式 | 媒体层 | 冗余 | 中小型企业 (SMB) | 网络文件系统(NFS) |
---|---|---|---|---|---|
Microsoft.Storage | 预配 v2 | HDD(标准) | 本地 (LRS) |
![]() |
![]() |
Microsoft.Storage | 预配 v2 | HDD(标准) | 区域 (ZRS) |
![]() |
![]() |
Microsoft.Storage | 预配 v2 | HDD(标准) | 异地 (GRS) |
![]() |
![]() |
Microsoft.Storage | 预配 v2 | HDD(标准) | GeoZone (GZRS) |
![]() |
![]() |
Microsoft.Storage | 预配版本 v1 | SSD(高级) | 本地 (LRS) |
![]() |
![]() |
Microsoft.Storage | 预配版本 v1 | SSD(高级) | 区域 (ZRS) |
![]() |
![]() |
Microsoft.Storage | 即用即付 | HDD(标准) | 本地 (LRS) |
![]() |
![]() |
Microsoft.Storage | 即用即付 | HDD(标准) | 区域 (ZRS) |
![]() |
![]() |
Microsoft.Storage | 即用即付 | HDD(标准) | 异地 (GRS) |
![]() |
![]() |
Microsoft.Storage | 即用即付 | HDD(标准) | GeoZone (GZRS) |
![]() |
![]() |
如何将根 Squash 与 Azure 文件存储配合使用
根 Squash 的工作原理是将根用户的用户 ID (UID) 和组 ID (GID) 重新映射到服务器上属于匿名用户的 UID 和 GID。 访问文件系统的根用户会自动转换为匿名且特权较低的用户/组,其权限有限。
尽管根 Squash 是 NFS 中的默认行为,但它不是创建 NFS Azure 文件共享时的默认选项。 必须在文件共享上显式启用根 Squash。 可以在创建 NFS Azure 文件共享时执行此操作,也可以稍后这样做。
根 Squash 设置
可以从下述三个根 Squash 设置中进行选择:
- “无根 Squash”:关闭根 Squash 功能。 此选项主要用于无盘客户端或工作负荷文档指定的工作负荷。 这是创建新的 NFS Azure 文件共享时的默认设置。
- 全部 Squash:将所有 UID 和 GID 映射到匿名用户。 适用于需要由所有客户端进行只读访问的共享。
- 根 Squash:将来自 UID/GID 0(根)的请求映射到匿名 UID/GID。 这不适用于任何其他可能同样敏感的 UID 或 GID,例如用户 bin 或组员工。
下表突出显示了配置特定根 Squash 选项时从服务器观察到的 UID 行为。
选项 | 客户端 UID | 服务器 UID |
---|---|---|
root_squash | 0 | 65534 |
root_squash | 1000 | 1000 |
no_root_squash | 0 | 0 |
no_root_squash | 1000 | 1000 |
all_squash | 0 | 65534 |
all_squash | 1000 | 65534 |
在现有 NFS 文件共享上配置根 Squash
可以通过 Azure 门户、Azure PowerShell 或 Azure CLI 配置根 Squash 设置。