我正在编写一个脚本,该脚本将允许用户更简单地应用自己的逗号分隔 ACL,作为更广泛的目录创建脚本的一部分。用户将输入
u
/user
或 g
/group
、他们的名字以及他们想要从 RWX
获得的基本选项。我正在使用 sed 将输入转换为正确的 NFSv4 ACL:
sed -E 's/^/A:/;s/(u|user|roup):([A-Za-z0-9]*):(.*)/:\[email protected]:\3/'
当我输入如下列表进行测试时:
u:user1:RWX,g:group1:RX
,我确实看到了用户的正确输出:A::[email protected]:RWX
,但该组未正确应用:A:g:group1:RX
而不是A:g:[email protected]:RX
。当我使用 group:group1::RX
时,它会正确返回 A:g:[email protected]:RX
。我猜这是因为 g
未被识别为第一个捕获组,但我不知道如何纠正它。有什么建议吗?
g:
如何匹配(u|user|roup):
?您可能想将 u
替换为 [gu]
。