1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-22 16:59:09 +03:00

pylibsmb: Move get_acl() to python

The previous code was not available in threaded environments

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Volker Lendecke
2020-11-11 13:20:39 +01:00
committed by Jeremy Allison
parent 57f8e7eb11
commit 472c16d554
2 changed files with 26 additions and 47 deletions

View File

@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from samba.samba3.libsmb_samba_cwrapper import *
from samba.dcerpc import security
class Conn(LibsmbCConn):
def deltree(self, path):
@ -23,3 +24,28 @@ class Conn(LibsmbCConn):
self.rmdir(path)
else:
self.unlink(path)
SECINFO_DEFAULT_FLAGS = \
security.SECINFO_OWNER | \
security.SECINFO_GROUP | \
security.SECINFO_DACL | \
security.SECINFO_PROTECTED_DACL | \
security.SECINFO_UNPROTECTED_DACL | \
security.SECINFO_SACL | \
security.SECINFO_PROTECTED_SACL | \
security.SECINFO_UNPROTECTED_SACL
def get_acl(self,
filename,
sinfo = SECINFO_DEFAULT_FLAGS,
access_mask = security.SEC_FLAG_MAXIMUM_ALLOWED):
"""Get security descriptor for file."""
fnum = self.create(
Name=filename,
DesiredAccess=access_mask,
ShareAccess=(FILE_SHARE_READ|FILE_SHARE_WRITE))
try:
sd = self.get_sd(fnum, sinfo)
finally:
self.close(fnum)
return sd