阿里云SMB协议文件系统ACL权限控制使用指南

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: ACL权限控制表是一项重要的企业级特性。阿里云用户可以将自建的AD服务与NAS SMB卷连通,通过AD域身份或者匿名(EVERYONE)的方式挂载NAS SMB卷,之后用户可以对任何文件、文件夹设置权限管控表。

ACL权限控制表是一项重要的企业级特性。在不连通AD服务时,NAS SMB卷的ACL是只读的,用户登录身份为匿名(EVERYONE)。现在阿里云用户可以将自建的AD服务与NAS SMB卷连通,通过AD域身份或者EVERYONE的方式挂载NAS SMB卷,之后用户可以对文件、文件夹设置ACL。具体配置AD的方法请参考将SMB协议NAS挂载点接入AD域,挂载SMB卷的方法请参考从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统

接下来我们介绍如何使用NAS SMB ACL及其相关特性。

说明 目前AD/ACL功能需要通过工单提交申请后才能使用,默认关闭。

1. 如何查看和修改ACL

用户可以使用Windows文件资源管理器的安全栏查看/修改权限,也可以通过Get-Acl/Set-Acl Powershell命令或者icacls命令行命令查看/修改ACL。

说明 请参考从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统,使用mklink工具以C盘下的符号链接的形式挂载好NAS SMB文件系统。

mklink /D c:\myshare \\nas-mount-point.nas.aliyuncs.com\myshare

1.1. Windows文件管理器

在符号链接生成后,用户可以通过Windows文件资源管理器(File Explorer)查看和编辑文件/目录的ACL。以下为示例(其中文件系统名、密码、密钥内容等敏感信息已涂黑)。

Windows文件管理器ACL示例

说明 需要注意的是,阿里云NAS文件系统并没有实际加入用户的AD域。如果不是通过c:\myshare访问,而是通过网络路径\\nas-mount-point.nas.aliyuncs.com\myshare访问文件系统,在设置ACL时,会遇到因RPC服务器不可用而无法确定NAS挂载点是否已加入域的情况。
是否已加入域
RPC服务器不可用

请参考从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统,使用mklink工具以C盘下的符号链接的形式挂载好NAS SMB文件系统。

mklink /D c:\myshare \\nas-mount-point.nas.aliyuncs.com\myshare

更多Windows文件管理器设置ACL的相关内容请参考Set-file-folder-permission-windows

注意:一定要保证文件管理器路径栏显示的是本地盘路径,否则设置ACL时会向NAS SMB卷发送RPC请求造成修改ACL失败。使用时注意如果需要回退,请点击回退或者上退按钮,但是不要点击路径中的某一段来回退。
请点击回退或者上退按钮,但是不要点击路径中的某一段来回退

1.2. Get-Acl/Set-Acl Powershell命令

Windows Powershell支持Get-Acl/Set-Acl来查看、修改ACL。
Get-Acl示例如下,更多资料请参考Get-Acl文档

$value = Get-Acl dir
$value.Access

Get-Acl

Set-Acl示例如下,更多资料请参考Set-Acl文档

Set-Acl .\dirKid2 $value
Get-Acl .\dirKid1 | Set-Acl .\dirKid2

1.3. Icacls Cmd命令

icacls是Windows命令行下的ACL操作标准命令。示例如下,更多资料请参考icacls文档

icacls .\dir0
icacls .\dir0 /grant *S-1-1-0:(d,wdac)
icacls .\dir0

icacls

2. 阿里云NAS SMB ACL基本特性

介绍完NAS SMB ACL的基本使用方法,接下来我们介绍NAS SMB ACL的基本特性。

2.1. 阿里云NAS SMB ACL的默认值

阿里云NAS SMB ACL的卷根目录权限默认值如下:
卷根目录权限默认值

2.1.1. 默认值设计的原因

  • SYSTEM, Administrators这两个ACE权限项是为了与Windows NTFS的权限对齐,保证管理员权限的程序能够正常运行。同时也为未来连通阿里云RAM账号系统之后,为超级用户提供管理员权限提供可能性。
  • CREATOR OWNER是为了实现继承机制,也与Windows NTFS权限对齐。
  • 设置Owner为Everyone,让Everyone有根目录的所有权限,这样没有使用AD的用户也能够以Everyone的身份登录卷并且在卷上进行创建新文件、文件夹的操作而不受影响。
  • NAS SMB AD/ACL设计了卷选项可以在卷上禁止以Everyone身份进行访问,只有域身份用户才能访问。有需要的用户请申请工单

2.1.2. 如何与已有用户的使用习惯进行兼容

  • 为了兼容不使用AD的用户,AD功能打开之前创建的文件/文件夹会有Everyone的所有权限,保证不使用AD的用户不受影响。不使用AD的用户可以通过NTLM协议以Everyone的身份挂载文件卷并能访问Everyone所拥有的内容。
  • 文件卷根目录权限是锁定的,这可以保障所有用户能够访问根目录。如需隔离,请自行建立子目录并设置隔离权限,让Everyone不能访问。或者申请工单禁止以Everyone身份进行访问。
  • 新的AD用户创建的文件/文件夹不会继承Everyone权限,所以新的AD用户的文件/文件夹不使用AD的用户并不能访问,只有创建者用户和管理员用户可以访问。
  • AD用户可以访问不使用AD的用户(即EVERYONE)创建的文件、文件夹。

2.2. 不支持多重身份挂载同一个NAS SMB卷

只能以一个身份挂载一个NAS SMB卷。尝试用另一身份挂载会出现以下错误:
另一身份挂载会出现以下错误

2.3. 逃逸机制

如果出现恶意用户强行删除了管理者权限以及其他人的权限,导致文件/文件夹不可用,需要用管理员身份挂载并重写该文件/文件夹的权限。阿里云NAS SMB文件卷实现了与Windows Server文件卷类似的逃逸机制。
比如,当恶意用户把文件夹的拥有者改成自己,然后设置Deny Everyone之后,管理者(Domain Admins, Built-in Administrators)可以在点击确认之后将文件夹的拥有者修改为管理者本人或者Everyone,然后把Deny Everyone的权限项删除并添加合适的Allow权限项即可。
逃逸机制示例

2.4. Cygwin

Cygwin可以在Windows环境中虚拟POSIX环境,运行POSIX程序。但是在启用AD/ACL之后,用户SID和Windows SD权限在Cygwin中会转化成POSIX uid/gid和POSIX ACL。这个转化的具体细节请参考Cygwin ntsec.html

2.4.1. /etc/fstab中加入noacl选项

在Cygwin中使用NAS SMB卷时,建议在Cygwin的/etc/fstab中加入noacl的挂载选项,这样Cygwin不会启用复杂的ACL转化,而是对新生成的文件和文件夹使用默认mode值,USER/GROUP则为当前Windows登录用户的用户名和群组。基本规则如下:

  • 文件夹默认mode和uid/gid(755)
    drwxr-xr-x 1 cat Domain Users 0 Jul 25 06:18 dir
  • 文件的默认mode和uid/gid(644)
    -rw-r--r-- 1 cat Domain Users 0 Jul 25 06:42 file
  • 文件的mode值可以为644或者444。如果是444,则文件设置了DOS Read-only权限。noacl只会转换文件的DOS Read-only权限
  • chmod命令不能修改文件夹的权限,可以修改文件的mode值到644或者444
  • chown/chgrp命令无效
  • getfacl/setfacl命令不支持
  • 因为客户端文件夹权限只会显示成755,文件权限只会显示成644或444,可能会出现客户端显示有权限但是服务端拒绝请求的情况

2.4.2. /etc/fstab如果使用默认acl选项

因为NAS SMB的默认挂载使用Everyone权限,而Everyone在Cygwin对应为other。Cygwin在生成文件/文件夹时,会有类似Linux的行为,在创建文件之后自动执行chmod操作使文件/文件夹mode达到默认值。因为文件夹的other默认值是r-x,文件的默认值是r--,所以Everyone只有r-x或者r--的权限,导致新生成的文件夹里Everyone无法创建新文件,新生成的文件对于Everyone也是只读的。

因此,强烈建议用户在Cygwin下使用noacl选项,不要使用acl选项。

2.5. Linux下使用AD/ACL

在Linux下使用mount -t cifs挂载时,用户可以指定挂载的域用户身份,以及挂载后的文件gid/uid/file mode/dir mode等。在使用文件卷时,客户端会根据挂载的uid/gid和登录的真实用户身份进行基本的posix权限检查,而在文件服务器端,无论Linux用户以何种uid/gid身份登录,都将映射到该域用户身份进行操作。Linux Root身份也没有管理员权限,而是该域用户的权限。chmod, chown, chgrp, getfacl/setfacl等Linux权限操作都将不起作用。

更多内容请参考从LinuxAD以域用户身份挂载使用阿里云SMB协议文件系统

阿里云文件存储AD/ACL相关文章

1. 阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍,总体介绍阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制的设计实现。

2. Kerberos网络身份认证协议介绍及SMB文件系统对其的支持,介绍Kerberos网络身份认证协议以及与SMB协议问系统的交互。

3. 安装并启用Active Directory域服务与DNS服务,介绍如何在VPC中安装并启用AD域服务和DNS服务。

4. 将Windows系统机器加入AD域,介绍如何将windows机器加入AD域。

5. 将阿里云SMB协议文件系统挂载点接入AD域,介绍如何在AD域服务器以及阿里云SMB协议文件系统中进行必要的配置来支持基于AD域的用户身份认证及权限访问控制。

6. 从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统,介绍如何从windows客户端以域用户身份挂载使用阿里云SMB协议文件系统。

7. 从LinuxAD以域用户身份挂载使用阿里云SMB协议文件系统,介绍如何从Linux客户端以域用户身份挂载使用阿里云SMB协议文件系统。

8. 阿里云SMB协议文件系统ACL权限控制使用指南,介绍如何正确地配置阿里云SMB协议文件系统的ACL以及相应的规则描述。

9. 阿里云SMB协议文件系统AD身份认证和ACL权限控制使用场景 - Home Directory / User Profile,介绍使用权限控制的域用户Home Directory以及User Profile两个场景下的相关配置及实现。

目录
相关文章
|
1月前
|
SQL 分布式计算 关系型数据库
阿里云E-MapReduce Trino专属集群外连引擎及权限控制踩坑实践
本文以云厂商售后技术支持的角度,从客户的需求出发,对于阿里云EMR-Trino集群的选型,外连多引擎的场景、Ldap以及Kerberos鉴权等问题进行了简要的实践和记录,模拟客户已有的业务场景,满足客户需求的同时对过程中的问题点进行解决、记录和分析,包括但不限于Mysql、ODPS、Hive connector的配置,Hive、Delta及Hudi等不同表格式读取的兼容,aws s3、阿里云 oss协议访问异常的解决等。
|
2月前
|
消息中间件 网络协议 物联网
MQTT协议问题之阿里云物联网服务器断开如何解决
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
127 1
|
5月前
金隅集团与阿里云签署战略合作协议
金隅集团与阿里云签署战略合作协议
51 0
|
5月前
|
人工智能 物联网 大数据
华南师范大学与阿里云签署校企框架合作协议
华南师范大学与阿里云签署校企框架合作协议
67 0
|
5月前
|
SQL 关系型数据库 分布式数据库
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
阿里云PolarDB是一款兼容MySQL、PostgreSQL和SQL Server等多种数据库协议的产品
644 6
|
8月前
|
人工智能 大数据 物联网
云赛智联与阿里云签署战略合作协议!
云赛智联与阿里云签署战略合作协议!
244 0
|
9月前
|
人工智能 大数据 物联网
云赛智联与阿里云签署战略合作协议
2022年7月23日,云赛智联股份有限公司(简称“云赛智联”)与阿里云在杭州达成战略合作,双方将本着优势互补、互利共赢的原则,共同推动云计算、大数据、物联网、人工智能、数据中心、行业应用等领域的技术创新,协力完善行业解决方案,开拓云计算大数据市场。
|
9月前
|
存储 弹性计算 移动开发
阿里云电脑无影用户使用指南_3分钟入门
阿里云电脑无影用户使用指南_3分钟入门,阿里云无影云桌面即无影云电脑,云电脑如何使用?云电脑购买后没有用户名和密码,先创建用户设置密码,才可以登录连接到云电脑。云电脑想要访问公网还需要开通互联网访问功能。阿里云百科来详细说下阿里云无影云电脑从购买、创建用户名密码和访问互联网全过程
303 0
|
24天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
28天前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考