diff options
author | Günther Deschner <gd@samba.org> | 2009-06-17 12:31:49 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-06-17 12:40:28 +0200 |
commit | 5a8483ea742a2f7f043e62b7abb6f17b957804d5 (patch) | |
tree | 9eb277d3332f46679fc647bf5b2d480f4ef84d6e /source3/utils | |
parent | f0930cef837cb4bdbbc98b01abde41303bef6d88 (diff) | |
download | samba-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')
-rw-r--r-- | source3/utils/net_sam.c | 24 |
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; } |