summaryrefslogtreecommitdiffstats
path: root/source3/utils/net_sam.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2009-06-17 12:31:49 +0200
committerGünther Deschner <gd@samba.org>2009-06-17 12:40:28 +0200
commit5a8483ea742a2f7f043e62b7abb6f17b957804d5 (patch)
tree9eb277d3332f46679fc647bf5b2d480f4ef84d6e /source3/utils/net_sam.c
parentf0930cef837cb4bdbbc98b01abde41303bef6d88 (diff)
downloadsamba-5a8483ea742a2f7f043e62b7abb6f17b957804d5.tar.gz
samba-5a8483ea742a2f7f043e62b7abb6f17b957804d5.tar.xz
samba-5a8483ea742a2f7f043e62b7abb6f17b957804d5.zip
s3-net: Fix Bug #6328: allow multiple rights in "net sam rights grant".
Guenther
Diffstat (limited to 'source3/utils/net_sam.c')
-rw-r--r--source3/utils/net_sam.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/source3/utils/net_sam.c b/source3/utils/net_sam.c
index 0d8b6ff4821..e8ab412469d 100644
--- a/source3/utils/net_sam.c
+++ b/source3/utils/net_sam.c
@@ -678,10 +678,11 @@ 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");
+ "<right> ...\n");
return -1;
}
@@ -691,17 +692,20 @@ static int net_sam_rights_grant(struct net_context *c, int argc,
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;
}