diff options
author | Tim Potter <tpot@samba.org> | 2004-09-24 12:41:00 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:59:11 -0500 |
commit | df99e4bb3751560eb74a4a923c4d7510926f5d71 (patch) | |
tree | a2ccacf95f3ffbbadaf049dcb23ed034625269cd /source4 | |
parent | 9dd6674a6c9d8f2f3986b7adb9e7122d0098b5a8 (diff) | |
download | samba-df99e4bb3751560eb74a4a923c4d7510926f5d71.tar.gz samba-df99e4bb3751560eb74a4a923c4d7510926f5d71.tar.bz2 samba-df99e4bb3751560eb74a4a923c4d7510926f5d71.zip |
r2597: A small program that takes SID strings on stdin and produces a marshalled
lsa_SidArray on stdout.
(This used to be commit d7d8a7ffc66cf6f78f11e8aed975d746c7a520a3)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/utils/config.m4 | 2 | ||||
-rw-r--r-- | source4/utils/config.mk | 14 | ||||
-rw-r--r-- | source4/utils/setnttoken.c | 77 |
3 files changed, 93 insertions, 0 deletions
diff --git a/source4/utils/config.m4 b/source4/utils/config.m4 index 74a31de177..22cfe1131f 100644 --- a/source4/utils/config.m4 +++ b/source4/utils/config.m4 @@ -8,3 +8,5 @@ SMB_INCLUDE_M4(utils/net/config.m4) SMB_BINARY_MK(getntacl, utils/config.mk) SMB_BINARY_MK(setntacl, utils/config.mk) + +SMB_BINARY_MK(setnttoken, utils/config.mk) diff --git a/source4/utils/config.mk b/source4/utils/config.mk index 0860e89ea3..7a773ad602 100644 --- a/source4/utils/config.mk +++ b/source4/utils/config.mk @@ -67,3 +67,17 @@ REQUIRED_SUBSYSTEMS = \ LIBRPC # End BINARY setntacl ################################# + +################################# +# Start BINARY setnttoken +[BINARY::setnttoken] +OBJ_FILES = \ + utils/setnttoken.o +REQUIRED_SUBSYSTEMS = \ + CONFIG \ + LIBCMDLINE \ + LIBBASIC \ + LIBSMB \ + LIBRPC +# End BINARY setnttoken +################################# diff --git a/source4/utils/setnttoken.c b/source4/utils/setnttoken.c new file mode 100644 index 0000000000..96adaf8286 --- /dev/null +++ b/source4/utils/setnttoken.c @@ -0,0 +1,77 @@ +/* + Unix SMB/CIFS implementation. + + Set NT ACLs on UNIX files. + + Copyright (C) Tim Potter <tpot@samba.org> 2004 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" + +#ifdef HAVE_NO_ACLS + +int main(int argc, char **argv) +{ + printf("ACL support not compiled in."); + return 1; +} + +#else + +int main(int argc, char **argv) +{ + char line[255]; + struct ndr_push *ndr; + struct lsa_SidArray sidarray; + NTSTATUS status; + + setup_logging("setnttoken", DEBUG_STDOUT); + + ndr = ndr_push_init(); + + sidarray.num_sids = 0; + sidarray.sids = NULL; + + while(fgets(line, sizeof(line), stdin)) { + struct dom_sid *sid = dom_sid_parse_talloc(ndr, line); + + if (!sid) { + fprintf(stderr, "Invalid sid: %s", line); + continue; + } + + sidarray.sids = talloc_realloc( + sidarray.sids, + (sidarray.num_sids + 1) * sizeof(struct lsa_SidPtr)); + + sidarray.sids[sidarray.num_sids].sid = + dom_sid_dup(ndr, sid); + + sidarray.num_sids++; + } + +/* NDR_PRINT_DEBUG(lsa_SidArray, &sidarray); */ + + status = ndr_push_lsa_SidArray( + ndr, NDR_SCALARS|NDR_BUFFERS, &sidarray); + + fwrite(ndr->data, 1, ndr->offset, stdout); + + return 0; +} + +#endif /* HAVE_NO_ACLS */ |