Fixes from Martin Dorey <mdorey@bluearc.com> to only ask for and change
authorJeremy Allison <jra@samba.org>
Tue, 24 Jun 2003 01:09:36 +0000 (01:09 +0000)
committerJeremy Allison <jra@samba.org>
Tue, 24 Jun 2003 01:09:36 +0000 (01:09 +0000)
the requested parts of the ACL.
Jeremy.
(This used to be commit c35a88201c619f0ebbaf38adbd0ec2af77e23981)

source3/utils/smbcacls.c

index 9d8a6577263379200e76edcbc3b5f29783e36b09..69dc2dd47a5a6be37a2ccb1bf74c31692b8a6292 100644 (file)
@@ -30,7 +30,6 @@ static int test_args = False;
 static TALLOC_CTX *ctx;
 
 #define CREATE_ACCESS_READ READ_CONTROL_ACCESS
-#define CREATE_ACCESS_WRITE (WRITE_DAC_ACCESS | WRITE_OWNER_ACCESS)
 
 /* numeric is set when the user wants numeric SIDs and ACEs rather
    than going via LSA calls to resolve them */
@@ -506,11 +505,11 @@ static int owner_set(struct cli_state *cli, enum chown_mode change_mode,
        }
 
        sd = make_sec_desc(ctx,old->revision,
-                               (change_mode == REQUEST_CHOWN) ? &sid : old->owner_sid,
-                               (change_mode == REQUEST_CHGRP) ? &sid : old->grp_sid,
-                          NULL, old->dacl, &sd_size);
+                               (change_mode == REQUEST_CHOWN) ? &sid : NULL,
+                               (change_mode == REQUEST_CHGRP) ? &sid : NULL,
+                          NULL, NULL, &sd_size);
 
-       fnum = cli_nt_create(cli, filename, CREATE_ACCESS_WRITE);
+       fnum = cli_nt_create(cli, filename, WRITE_OWNER_ACCESS);
 
        if (fnum == -1) {
                printf("Failed to open %s: %s\n", filename, cli_errstr(cli));
@@ -680,10 +679,10 @@ static int cacl_set(struct cli_state *cli, char *filename,
        sort_acl(old->dacl);
 
        /* Create new security descriptor and set it */
-       sd = make_sec_desc(ctx,old->revision, old->owner_sid, old->grp_sid, 
+       sd = make_sec_desc(ctx,old->revision, NULL, NULL,
                           NULL, old->dacl, &sd_size);
 
-       fnum = cli_nt_create(cli, filename, CREATE_ACCESS_WRITE);
+       fnum = cli_nt_create(cli, filename, WRITE_DAC_ACCESS);
 
        if (fnum == -1) {
                printf("cacl_set failed to open %s: %s\n", filename, cli_errstr(cli));