NFS ACL SET ACL/SETACL 结构
Posted
技术标签:
【中文标题】NFS ACL SET ACL/SETACL 结构【英文标题】:NFSACL GETACL / SETACL structes 【发布时间】:2015-08-20 08:20:44 【问题描述】:我在客户端和服务器之间有一个代理服务器。
我使用 XDR 读取和修改它们之间的 NFS 消息
例如,如果我想编辑文件大小并获取属性回复 我使用结构和函数
GETATTR3res
bool_t xdr_GETATTR3res (XDR *xdrs, GETATTR3res *objp);
现在我想用同样的方法来修改回复
RPC:
程序:NFSACL (100227)
程序版本:3
程序:GETACL (1) 和 SETACL (2)
我想用 xdr 编辑 (fattr3) 属性字段
NFSACL 的 XDR 函数,甚至 NFSACL 过程具有的字段的解构 XDR 函数
【问题讨论】:
当然,您可以通过在nfs_prot.x
上运行 rpcgen 来更明智地获取此信息,其中包含 RPC 定义本身
【参考方案1】:
我发现这个结构列表可以使用更小的 XDR 函数来修改属性
struct GETACL3args
nfs_fh3 fh;
uint32 mask;
;
typedef struct GETACL3args GETACL3args;
struct GETACL3resok
post_op_attr attr;
vsecattr_t acl;
;
typedef struct GETACL3resok GETACL3resok;
struct GETACL3resfail
post_op_attr attr;
;
typedef struct GETACL3resfail GETACL3resfail;
struct GETACL3res
nfsstat3 status;
union
GETACL3resok ok;
GETACL3resfail fail;
res_u;
;
typedef struct GETACL3res GETACL3res;
struct SETACL3args
nfs_fh3 fh;
vsecattr_t acl;
;
typedef struct SETACL3args SETACL3args;
struct SETACL3resok
post_op_attr attr;
;
typedef struct SETACL3resok SETACL3resok;
struct SETACL3resfail
post_op_attr attr;
;
typedef struct SETACL3resfail SETACL3resfail;
struct SETACL3res
nfsstat3 status;
union
SETACL3resok ok;
SETACL3resfail fail;
res_u;
;
typedef struct SETACL3res SETACL3res;
并使用 xdr_post_op_attr 进行解码和回传
【讨论】:
以上是关于NFS ACL SET ACL/SETACL 结构的主要内容,如果未能解决你的问题,请参考以下文章
Set-Acl 在 PowerShell v5 中无法按预期工作
为啥驱动器根目录上的 Set-Acl 会尝试设置“对象”的所有权?