[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Wed Jun 26 10:44:02 MDT 2013


The branch, master has been updated
       via  011dc52 sharesec: Document --view-all
       via  4da8984 sharesec: Document -v/--view
       via  780e2b0 sharesec: Implement --view-all
      from  4ee73fd s3:smbd/close remove filesystem lock before removing sharemode

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 011dc52df3a3319e33ae88617b9269dfe406d42c
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Jun 26 15:35:37 2013 +0000

    sharesec: Document --view-all
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Volker Lendecke <vl at samba.org>
    Autobuild-Date(master): Wed Jun 26 18:43:45 CEST 2013 on sn-devel-104

commit 4da8984c1b7ae8f8f372a56daa5f8c9c33f28313
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Jun 26 15:34:37 2013 +0000

    sharesec: Document -v/--view
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 780e2b092d7ba12aa03fb89f7c06c3d51ebf6e5f
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Jun 26 15:21:39 2013 +0200

    sharesec: Implement --view-all
    
    Listing individual shares can be quite slow when you have a lot of shares. This
    implements a --view-all option that prints something like
    
    [share1]
    REVISION:1
    OWNER:(NULL SID)
    GROUP:(NULL SID)
    ACL:S-1-1-0:ALLOWED/0/FULL
    
    [share2]
    REVISION:1
    OWNER:(NULL SID)
    GROUP:(NULL SID)
    ACL:S-1-1-0:ALLOWED/0/FULL
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 docs-xml/manpages/sharesec.1.xml |   15 +++++++++++++++
 source3/utils/sharesec.c         |   35 ++++++++++++++++++++++++++++++++++-
 2 files changed, 49 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/manpages/sharesec.1.xml b/docs-xml/manpages/sharesec.1.xml
index 5cd4a48..b983408 100644
--- a/docs-xml/manpages/sharesec.1.xml
+++ b/docs-xml/manpages/sharesec.1.xml
@@ -26,6 +26,7 @@
 		<arg choice="opt">-R, --replace=ACLs</arg>
 		<arg choice="opt">-D, --delete</arg>
 		<arg choice="opt">-v, --view</arg>
+		<arg choice="opt">--view-all</arg>
 		<arg choice="opt">-M, --machine-sid</arg>
 		<arg choice="opt">-F, --force</arg>
 		<arg choice="opt">-d, --debuglevel=DEBUGLEVEL</arg>
@@ -98,6 +99,20 @@
 		</para></listitem>
 		</varlistentry>
 
+		<varlistentry>
+		<term>-v|--view</term>
+		<listitem><para>
+		List a share acl
+		</para></listitem>
+		</varlistentry>
+
+		<varlistentry>
+		<term>--view-all</term>
+		<listitem><para>
+		List all share acls
+		</para></listitem>
+		</varlistentry>
+
 		&stdarg.help;
 		&stdarg.server.debug;
 		&popt.common.samba;
diff --git a/source3/utils/sharesec.c b/source3/utils/sharesec.c
index 641a2ce..38c11e0 100644
--- a/source3/utils/sharesec.c
+++ b/source3/utils/sharesec.c
@@ -36,7 +36,8 @@ enum acl_mode { SMB_ACL_DELETE,
 		SMB_SD_DELETE,
 		SMB_SD_SETSDDL,
 		SMB_SD_VIEWSDDL,
-	        SMB_ACL_VIEW };
+	        SMB_ACL_VIEW,
+		SMB_ACL_VIEW_ALL };
 
 struct perm_value {
 	const char *perm;
@@ -432,6 +433,9 @@ static int change_share_sec(TALLOC_CTX *mem_ctx, const char *sharename, char *th
 	}
 
 	switch (mode) {
+	case SMB_ACL_VIEW_ALL:
+		/* should not happen */
+		return 0;
 	case SMB_ACL_VIEW:
 		sec_desc_print( stdout, old);
 		return 0;
@@ -565,6 +569,10 @@ static int view_sharesec_sddl(const char *sharename)
   main program
 ********************************************************************/
 
+enum {
+	OPT_VIEW_ALL = 1000,
+};
+
 int main(int argc, const char *argv[])
 {
 	int opt;
@@ -588,6 +596,8 @@ int main(int argc, const char *argv[])
 		{ "viewsddl", 'V', POPT_ARG_NONE, the_acl, 'V',
 		  "View the SD in sddl format" },
 		{ "view", 'v', POPT_ARG_NONE, NULL, 'v', "View current share permissions" },
+		{ "view-all", 0, POPT_ARG_NONE, NULL, OPT_VIEW_ALL,
+		  "View all current share permissions" },
 		{ "machine-sid", 'M', POPT_ARG_NONE, NULL, 'M', "Initialize the machine SID" },
 		{ "force", 'F', POPT_ARG_NONE, NULL, 'F', "Force storing the ACL", "ACLS" },
 		POPT_COMMON_SAMBA
@@ -656,6 +666,9 @@ int main(int argc, const char *argv[])
 		case 'M':
 			initialize_sid = True;
 			break;
+		case OPT_VIEW_ALL:
+			mode = SMB_ACL_VIEW_ALL;
+			break;
 		}
 	}
 
@@ -683,6 +696,25 @@ int main(int argc, const char *argv[])
 		return -1;
 	}
 
+	if (mode == SMB_ACL_VIEW_ALL) {
+		int i;
+
+		for (i=0; i<lp_numservices(); i++) {
+			TALLOC_CTX *frame = talloc_stackframe();
+			const char *service = lp_servicename(frame, i);
+
+			if (service == NULL) {
+				continue;
+			}
+
+			printf("[%s]\n", service);
+			change_share_sec(frame, service, NULL, SMB_ACL_VIEW);
+			printf("\n");
+			TALLOC_FREE(frame);
+		}
+		goto done;
+	}
+
 	/* get the sharename */
 
 	if(!poptPeekArg(pc)) {
@@ -711,6 +743,7 @@ int main(int argc, const char *argv[])
 		break;
 	}
 
+done:
 	talloc_destroy(ctx);
 
 	return retval;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list