mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
Move directory_has_default_acl() to file_access.c, belongs
there as it no longer uses explicit POSIX ACL calls. Jeremy.
This commit is contained in:
parent
b08ea48f88
commit
ac1eac9b0d
@ -183,3 +183,30 @@ bool can_write_to_file(connection_struct *conn, const char *fname, SMB_STRUCT_ST
|
|||||||
return can_access_file(conn, fname, psbuf, FILE_WRITE_DATA);
|
return can_access_file(conn, fname, psbuf, FILE_WRITE_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
Check for an existing default Windows ACL on a directory.
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
bool directory_has_default_acl(connection_struct *conn, const char *fname)
|
||||||
|
{
|
||||||
|
/* returns talloced off tos. */
|
||||||
|
struct security_descriptor *secdesc = NULL;
|
||||||
|
unsigned int i;
|
||||||
|
NTSTATUS status = SMB_VFS_GET_NT_ACL(conn, fname,
|
||||||
|
DACL_SECURITY_INFORMATION, &secdesc);
|
||||||
|
|
||||||
|
if (!NT_STATUS_IS_OK(status) || secdesc == NULL) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < secdesc->dacl->num_aces; i++) {
|
||||||
|
struct security_ace *psa = &secdesc->dacl->aces[i];
|
||||||
|
if (psa->flags & (SEC_ACE_FLAG_OBJECT_INHERIT|
|
||||||
|
SEC_ACE_FLAG_CONTAINER_INHERIT)) {
|
||||||
|
TALLOC_FREE(secdesc);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TALLOC_FREE(secdesc);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@ -4310,28 +4310,3 @@ SEC_DESC *get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
|
|||||||
|
|
||||||
return ret_sd;
|
return ret_sd;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
Check for an existing default Windows ACL on a directory.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
bool directory_has_default_acl(connection_struct *conn, const char *fname)
|
|
||||||
{
|
|
||||||
SEC_DESC *psd = NULL; /* returns talloced off tos. */
|
|
||||||
unsigned int i;
|
|
||||||
NTSTATUS status = SMB_VFS_GET_NT_ACL(conn, fname,
|
|
||||||
DACL_SECURITY_INFORMATION, &psd);
|
|
||||||
|
|
||||||
if (!NT_STATUS_IS_OK(status) || psd == NULL) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < psd->dacl->num_aces; i++) {
|
|
||||||
SEC_ACE *psa = &psd->dacl->aces[i];
|
|
||||||
if (psa->flags & (SEC_ACE_FLAG_OBJECT_INHERIT|
|
|
||||||
SEC_ACE_FLAG_CONTAINER_INHERIT)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user