[SCM] Samba Shared Repository - branch v3-4-test updated -
release-4-0-0alpha7-1147-ga291e88
Karolin Seeger
kseeger at samba.org
Thu Jun 18 09:44:27 GMT 2009
The branch, v3-4-test has been updated
via a291e88019771bb2703bf9854483404a6ee8d622 (commit)
via 4d189ed0be01d71689731d315b53d8ba1d158be3 (commit)
from 86adaae8ea12a88e6f7e84de4c645f237730da1c (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test
- Log -----------------------------------------------------------------
commit a291e88019771bb2703bf9854483404a6ee8d622
Author: Karolin Seeger <kseeger at samba.org>
Date: Thu Jun 18 09:32:10 2009 +0200
s3/docs: Add documentation for 'net sam rights'.
This is part of a fix for bug #6328.
Karolin
(cherry picked from commit e912764a5e0c1f05f921667eb56ef58552de454b)
commit 4d189ed0be01d71689731d315b53d8ba1d158be3
Author: David Markey <admin at dmarkey.com>
Date: Wed Jun 17 18:29:20 2009 +0200
s3-net: Fix Bug #6328: support "net sam rights grant/revoke" with multiple rights.
David
Signed-off-by: Günther Deschner <gd at samba.org>
-----------------------------------------------------------------------
Summary of changes:
docs-xml/manpages-3/net.8.xml | 27 +++++++++++++++++
source3/utils/net_sam.c | 64 +++++++++++++++++++++++-----------------
2 files changed, 64 insertions(+), 27 deletions(-)
Changeset truncated at 500 lines:
diff --git a/docs-xml/manpages-3/net.8.xml b/docs-xml/manpages-3/net.8.xml
index b6e7042..a0cba83 100644
--- a/docs-xml/manpages-3/net.8.xml
+++ b/docs-xml/manpages-3/net.8.xml
@@ -1056,6 +1056,33 @@ the rid and description is also provided for each account.
</refsect2>
<refsect2>
+<title>SAM RIGHTS LIST</title>
+
+<para>
+List all available privileges.
+</para>
+
+</refsect2>
+
+<refsect2>
+<title>SAM RIGHTS GRANT <NAME> <PRIVILEGE></title>
+
+<para>
+Grant one or more privileges to a user.
+</para>
+
+</refsect2>
+
+<refsect2>
+<title>SAM RIGHTS REVOKE <NAME> <PRIVILEGE></title>
+
+<para>
+Revoke one or more privileges from a user.
+</para>
+
+</refsect2>
+
+<refsect2>
<title>SAM SHOW <NAME></title>
<para>
diff --git a/source3/utils/net_sam.c b/source3/utils/net_sam.c
index 6b3f5e5..7427ba9 100644
--- a/source3/utils/net_sam.c
+++ b/source3/utils/net_sam.c
@@ -678,63 +678,73 @@ static int net_sam_rights_grant(struct net_context *c, int argc,
enum lsa_SidType type;
const char *dom, *name;
SE_PRIV mask;
+ int i;
- if (argc != 2 || c->display_usage) {
+ if (argc < 2 || c->display_usage) {
d_fprintf(stderr, "usage: net sam rights grant <name> "
- "<right>\n");
+ "<rights> ...\n");
return -1;
}
if (!lookup_name(talloc_tos(), argv[0], LOOKUP_NAME_LOCAL,
- &dom, &name, &sid, &type)) {
+ &dom, &name, &sid, &type)) {
d_fprintf(stderr, "Could not find name %s\n", argv[0]);
return -1;
}
- if (!se_priv_from_name(argv[1], &mask)) {
- d_fprintf(stderr, "%s unknown\n", argv[1]);
- return -1;
- }
+ for (i=1; i < argc; i++) {
+ if (!se_priv_from_name(argv[i], &mask)) {
+ d_fprintf(stderr, "%s unknown\n", argv[i]);
+ return -1;
+ }
- if (!grant_privilege(&sid, &mask)) {
- d_fprintf(stderr, "Could not grant privilege\n");
- return -1;
+ if (!grant_privilege(&sid, &mask)) {
+ d_fprintf(stderr, "Could not grant privilege\n");
+ return -1;
+ }
+
+ d_printf("Granted %s to %s\\%s\n", argv[i], dom, name);
}
- d_printf("Granted %s to %s\\%s\n", argv[1], dom, name);
return 0;
}
-static int net_sam_rights_revoke(struct net_context *c, int argc, const char **argv)
+static int net_sam_rights_revoke(struct net_context *c, int argc,
+ const char **argv)
{
DOM_SID sid;
enum lsa_SidType type;
const char *dom, *name;
SE_PRIV mask;
+ int i;
- if (argc != 2 || c->display_usage) {
+ if (argc < 2 || c->display_usage) {
d_fprintf(stderr, "usage: net sam rights revoke <name> "
- "<right>\n");
+ "<rights>\n");
return -1;
}
if (!lookup_name(talloc_tos(), argv[0], LOOKUP_NAME_LOCAL,
- &dom, &name, &sid, &type)) {
+ &dom, &name, &sid, &type)) {
d_fprintf(stderr, "Could not find name %s\n", argv[0]);
return -1;
}
- if (!se_priv_from_name(argv[1], &mask)) {
- d_fprintf(stderr, "%s unknown\n", argv[1]);
- return -1;
- }
+ for (i=1; i < argc; i++) {
- if (!revoke_privilege(&sid, &mask)) {
- d_fprintf(stderr, "Could not revoke privilege\n");
- return -1;
+ if (!se_priv_from_name(argv[i], &mask)) {
+ d_fprintf(stderr, "%s unknown\n", argv[i]);
+ return -1;
+ }
+
+ if (!revoke_privilege(&sid, &mask)) {
+ d_fprintf(stderr, "Could not revoke privilege\n");
+ return -1;
+ }
+
+ d_printf("Revoked %s from %s\\%s\n", argv[i], dom, name);
}
- d_printf("Revoked %s from %s\\%s\n", argv[1], dom, name);
return 0;
}
@@ -753,17 +763,17 @@ static int net_sam_rights(struct net_context *c, int argc, const char **argv)
"grant",
net_sam_rights_grant,
NET_TRANSPORT_LOCAL,
- "Grant a right",
+ "Grant right(s)",
"net sam rights grant\n"
- " Grant a right"
+ " Grant right(s)"
},
{
"revoke",
net_sam_rights_revoke,
NET_TRANSPORT_LOCAL,
- "Revoke a right",
+ "Revoke right(s)",
"net sam rights revoke\n"
- " Revoke a right"
+ " Revoke right(s)"
},
{NULL, NULL, 0, NULL, NULL}
};
--
Samba Shared Repository
More information about the samba-cvs
mailing list