samba-tool Add --service argument to samba-tool ntacl get/set
authorAndrew Bartlett <abartlet@samba.org>
Sat, 15 Dec 2012 10:24:26 +0000 (21:24 +1100)
committerJeremy Allison <jra@samba.org>
Tue, 8 Jan 2013 02:39:20 +0000 (03:39 +0100)
This also ensures a VFS connect is done to the correct service.

Andrew Bartlett

Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Jan  8 03:39:21 CET 2013 on sn-devel-104

source4/scripting/python/samba/netcmd/ntacl.py

index 838f9bab305f588d122a4e9ed056b52fe25e792f..6d4d350653e15f46af7106b79552f6725b52e9d4 100644 (file)
@@ -56,14 +56,16 @@ class cmd_ntacl_set(Command):
                choices=["native","tdb"]),
         Option("--eadb-file", help="Name of the tdb file where attributes are stored", type="string"),
         Option("--use-ntvfs", help="Set the ACLs directly to the TDB or xattr for use with the ntvfs file server", action="store_true"),
-        Option("--use-s3fs", help="Set the ACLs for use with the default s3fs file server via the VFS layer", action="store_true")
+        Option("--use-s3fs", help="Set the ACLs for use with the default s3fs file server via the VFS layer", action="store_true"),
+        Option("--service", help="Name of the smb.conf service to use when applying the ACLs", type="string")
         ]
 
     takes_args = ["acl","file"]
 
     def run(self, acl, file, use_ntvfs=False, use_s3fs=False,
             quiet=False,xattr_backend=None,eadb_file=None,
-            credopts=None, sambaopts=None, versionopts=None):
+            credopts=None, sambaopts=None, versionopts=None,
+            service=None):
         logger = self.get_logger()
         lp = sambaopts.get_loadparm()
         try:
@@ -87,7 +89,7 @@ class cmd_ntacl_set(Command):
         # ensure we are using the right samba_dsdb passdb backend, no matter what
         s3conf.set("passdb backend", "samba_dsdb:%s" % samdb.url)
 
-        setntacl(lp, file, acl, str(domain_sid), xattr_backend, eadb_file, use_ntvfs=use_ntvfs)
+        setntacl(lp, file, acl, str(domain_sid), xattr_backend, eadb_file, use_ntvfs=use_ntvfs, service=service)
 
         if use_ntvfs:
             logger.warning("Please note that POSIX permissions have NOT been changed, only the stored NT ACL")
@@ -109,14 +111,16 @@ class cmd_ntacl_get(Command):
                choices=["native","tdb"]),
         Option("--eadb-file", help="Name of the tdb file where attributes are stored", type="string"),
         Option("--use-ntvfs", help="Get the ACLs directly from the TDB or xattr used with the ntvfs file server", action="store_true"),
-        Option("--use-s3fs", help="Get the ACLs for use via the VFS layer used by the default s3fs file server", action="store_true")
+        Option("--use-s3fs", help="Get the ACLs for use via the VFS layer used by the default s3fs file server", action="store_true"),
+        Option("--service", help="Name of the smb.conf service to use when getting the ACLs", type="string")
         ]
 
     takes_args = ["file"]
 
     def run(self, file, use_ntvfs=False, use_s3fs=False,
             as_sddl=False, xattr_backend=None, eadb_file=None,
-            credopts=None, sambaopts=None, versionopts=None):
+            credopts=None, sambaopts=None, versionopts=None,
+            service=None):
         lp = sambaopts.get_loadparm()
         try:
             samdb = SamDB(session_info=system_session(),
@@ -135,7 +139,7 @@ class cmd_ntacl_get(Command):
         # ensure we are using the right samba_dsdb passdb backend, no matter what
         s3conf.set("passdb backend", "samba_dsdb:%s" % samdb.url)
 
-        acl = getntacl(lp, file, xattr_backend, eadb_file, direct_db_access=use_ntvfs)
+        acl = getntacl(lp, file, xattr_backend, eadb_file, direct_db_access=use_ntvfs, service=service)
         if as_sddl:
             try:
                 domain_sid = security.dom_sid(samdb.domain_sid)