mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
r3833: NTACL is a better xattr name than DosAcl (tpot suggested this)
This commit is contained in:
parent
3a1f20d874
commit
17911eea59
@ -112,7 +112,7 @@ struct file_info;
|
||||
|
||||
struct xattr_DosEAs;
|
||||
struct xattr_DosStreams;
|
||||
struct xattr_DosAcl;
|
||||
struct xattr_NTACL;
|
||||
|
||||
struct test_join;
|
||||
|
||||
|
@ -77,22 +77,21 @@ interface xattr
|
||||
} xattr_DosStreams;
|
||||
|
||||
|
||||
/* we store the NT ACL a DosAcl xattr. It is versioned so we
|
||||
can later add other acl attribs (such as posix acl
|
||||
mapping)
|
||||
/* we store the NT ACL a NTAcl xattr. It is versioned so we
|
||||
can later add other acl attribs (such as posix acl mapping)
|
||||
|
||||
we put this xattr in the security namespace to ensure that
|
||||
only trusted users can write to the ACL
|
||||
*/
|
||||
const string XATTR_DOSACL_NAME = "security.DosAcl";
|
||||
const string XATTR_NTACL_NAME = "security.NTAcl";
|
||||
|
||||
typedef union {
|
||||
[case(1)] security_descriptor *sd;
|
||||
} xattr_DosAclInfo;
|
||||
} xattr_NTACL_Info;
|
||||
|
||||
typedef [public] struct {
|
||||
uint16 version;
|
||||
[switch_is(version)] xattr_DosAclInfo info;
|
||||
} xattr_DosAcl;
|
||||
[switch_is(version)] xattr_NTACL_Info info;
|
||||
} xattr_NTACL;
|
||||
|
||||
}
|
||||
|
@ -33,7 +33,7 @@
|
||||
static NTSTATUS pvfs_default_acl(struct pvfs_state *pvfs,
|
||||
struct smbsrv_request *req,
|
||||
struct pvfs_filename *name, int fd,
|
||||
struct xattr_DosAcl *acl)
|
||||
struct xattr_NTACL *acl)
|
||||
{
|
||||
struct security_descriptor *sd;
|
||||
struct nt_user_token *token = req->session->session_info->nt_user_token;
|
||||
@ -103,12 +103,12 @@ NTSTATUS pvfs_acl_set(struct pvfs_state *pvfs,
|
||||
struct pvfs_filename *name, int fd,
|
||||
union smb_setfileinfo *info)
|
||||
{
|
||||
struct xattr_DosAcl *acl;
|
||||
struct xattr_NTACL *acl;
|
||||
uint32_t secinfo_flags = info->set_secdesc.in.secinfo_flags;
|
||||
struct security_descriptor *new_sd, *sd;
|
||||
NTSTATUS status;
|
||||
|
||||
acl = talloc_p(req, struct xattr_DosAcl);
|
||||
acl = talloc_p(req, struct xattr_NTACL);
|
||||
if (acl == NULL) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
@ -159,11 +159,11 @@ NTSTATUS pvfs_acl_query(struct pvfs_state *pvfs,
|
||||
struct pvfs_filename *name, int fd,
|
||||
union smb_fileinfo *info)
|
||||
{
|
||||
struct xattr_DosAcl *acl;
|
||||
struct xattr_NTACL *acl;
|
||||
NTSTATUS status;
|
||||
struct security_descriptor *sd;
|
||||
|
||||
acl = talloc_p(req, struct xattr_DosAcl);
|
||||
acl = talloc_p(req, struct xattr_NTACL);
|
||||
if (acl == NULL) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
@ -353,7 +353,7 @@ NTSTATUS pvfs_streams_save(struct pvfs_state *pvfs, struct pvfs_filename *name,
|
||||
load the current ACL from extended attributes
|
||||
*/
|
||||
NTSTATUS pvfs_acl_load(struct pvfs_state *pvfs, struct pvfs_filename *name, int fd,
|
||||
struct xattr_DosAcl *acl)
|
||||
struct xattr_NTACL *acl)
|
||||
{
|
||||
NTSTATUS status;
|
||||
ZERO_STRUCTP(acl);
|
||||
@ -363,7 +363,7 @@ NTSTATUS pvfs_acl_load(struct pvfs_state *pvfs, struct pvfs_filename *name, int
|
||||
status = pvfs_xattr_ndr_load(pvfs, acl, name->full_name, fd,
|
||||
XATTR_DOSACL_NAME,
|
||||
acl,
|
||||
(ndr_pull_flags_fn_t)ndr_pull_xattr_DosAcl);
|
||||
(ndr_pull_flags_fn_t)ndr_pull_xattr_NTACL);
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -371,7 +371,7 @@ NTSTATUS pvfs_acl_load(struct pvfs_state *pvfs, struct pvfs_filename *name, int
|
||||
save the acl for a file into filesystem xattr
|
||||
*/
|
||||
NTSTATUS pvfs_acl_save(struct pvfs_state *pvfs, struct pvfs_filename *name, int fd,
|
||||
struct xattr_DosAcl *acl)
|
||||
struct xattr_NTACL *acl)
|
||||
{
|
||||
NTSTATUS status;
|
||||
void *privs;
|
||||
@ -386,7 +386,7 @@ NTSTATUS pvfs_acl_save(struct pvfs_state *pvfs, struct pvfs_filename *name, int
|
||||
status = pvfs_xattr_ndr_save(pvfs, name->full_name, fd,
|
||||
XATTR_DOSACL_NAME,
|
||||
acl,
|
||||
(ndr_push_flags_fn_t)ndr_push_xattr_DosAcl);
|
||||
(ndr_push_flags_fn_t)ndr_push_xattr_NTACL);
|
||||
talloc_free(privs);
|
||||
return status;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user