python/ntacls.py: add SMBHelper.set_acl() helper function
authorBjörn Baumbach <bb@sernet.de>
Tue, 21 Jul 2020 10:34:19 +0000 (12:34 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 17 Dec 2020 13:59:38 +0000 (13:59 +0000)
Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Björn Baumbach <bb@sernet.de>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
python/samba/ntacls.py

index b8a7d9b442bde6be61de02ee903f5062894949be..4f189965d056502be27bfaaa955925bd740e0c72 100644 (file)
@@ -339,6 +339,20 @@ class SMBHelper:
 
         return ntacl_sd.as_sddl(self.dom_sid) if as_sddl else ntacl_sd
 
+    def set_acl(self, smb_path, ntacl_sd,
+                sinfo=None, access_mask=None):
+        assert '/' not in smb_path
+
+        assert(isinstance(ntacl_sd, str) or isinstance(ntacl_sd, security.descriptor))
+        if isinstance(ntacl_sd, str):
+            tmp_desc = security.descriptor.from_sddl(ntacl_sd, self.domain_sid)
+        elif isinstance(ntacl_sd, security.descriptor):
+            tmp_desc = ntacl_sd
+
+        self.smb_conn.set_acl(smb_path, tmp_desc,
+                              sinfo=sinfo,
+                              access_mask=access_mask)
+
     def list(self, smb_path=''):
         """
         List file and dir base names in smb_path without recursive.