Commit Graph

49 Commits

Author SHA1 Message Date
Corinna Vinschen 92b499acff * Align usage output, version output, as well as usage and version
option handling to use the same style throughout all Cygwin utils.
	Throughout use program_invocation_short_name to refer to current
	process name in Cygwin executables.
	* utils.sgml: Align documentation to above change.  Add missing
	sections for getconf, ldd, and setmetamode.
	* strace.cc (proc_child): Avoid compiler warning.
2011-10-10 14:57:48 +00:00
Corinna Vinschen 71d8f118da * loadlib.h: New header implementing safe LoadLibrary calls.
Include throughout files using LoadLibrary function.
	* cygcheck.cc (dump_sysinfo): Retrieve kernel32.dll handle via
	GetModuleHandle, rather than using LoadLibrary.
	* cygpath.cc (get_long_name): Ditto.
	(do_sysfolders): Append .dll suffix in LoadLibrary call.
	* ldh.cc (WinMain): Use LoadLibraryExW with DONT_RESOLVE_DLL_REFERENCES
	to avoid loading malicious library code.
	* locale.cc (print_locale_with_codeset): Change way to retrieve
	kernel32.dll path.
2010-08-28 11:22:37 +00:00
Christopher Faylor a37e07482c * mkpasswd.c: Properly define __progname as __declspec(dllimport).
* mkgroup.c: Ditto.
2009-10-02 13:49:39 +00:00
Corinna Vinschen 91dd009e81 * mkgroup.c (enum_local_groups): Avoid error message if given group
name isn't found and return 0 to allow searching to proceed.  Always
	return 0 or 1, not -1.
	(enum_groups): Avoid error message if given group name isn't found.
	* mkpasswd.c (enum_users): Ditto.
2009-08-11 08:59:50 +00:00
Corinna Vinschen 73535010d7 * cygpath.cc (main): Only setlocale for LC_CTYPE category. Fallback
to UTF-8 if locale is "C".
	* ldd.cc (main): Ditto.
	* mkgroup.c (main): Ditto.
	* mkpasswd.c (main): Ditto.
	* passwd.c (main): Ditto.
2009-05-15 11:30:18 +00:00
Corinna Vinschen 05e6f7b2b9 * mkpasswd.c (current_user): Don't use HOMEDRIVE/HOMEPATH to generate
user's homedir.

	* mkgroup.c: Accommodate ctype changes.
	* mkpasswd.c: Ditto.
	* setfacl.c: Ditto.
	* ssp.c: Ditto.
2009-05-06 11:54:24 +00:00
Corinna Vinschen 328b090f29 * mkgroup.c (enum_local_groups): Don't skip printing groups when
print_current is set and group SID is not curr_pgrp.
	(enum_groups): Ditto.
	(main): Fix condition when SYSTEM group gets printed.
	* mkpasswd.c (enum_users): Don't skip printing users when print_current
	is set and user SID is not curr_user.
	(main): Allow printing standard accounts even when print_current is set.
2008-08-25 09:38:14 +00:00
Corinna Vinschen bba4895394 * mkgroup.c (enum_local_groups): Use NetLocalGroupGetInfo to find out
if a group exists, rather than just allocating a buffer and going ahead.
2008-08-18 12:56:59 +00:00
Corinna Vinschen 2d1bfd524d * mkgroup.c (enum_local_groups): Call print_win_error with GetLastError
as argument when LookupAccountXXX failed.
	(enum_groups): Ditto.
2008-08-18 12:42:44 +00:00
Corinna Vinschen 5a62582162 * mkgroup.c (enum_local_groups): Return failure if looking for a single
group succeeded.  Add comment.
2008-08-18 08:58:21 +00:00
Corinna Vinschen 096df1774b * mkgroup.c (main): Keep correctly track of optional arguments.
* mkpasswd.c (main): Ditto.
2008-08-18 08:52:49 +00:00
Corinna Vinschen 01dd3162ff * mkgroup.c (main): Always unset environment variable POSIXLY_CORRECT.
Keep track of optional argumnts and fix up optind afterwards.
	* mkpasswd.c (main): Ditto.
2008-08-18 08:33:48 +00:00
Christopher Faylor 6510edf4bc * Makefile.in (ALL_LDFLAGS): Add --enable-auto-import option to quiet ld
warnings.
* mkgroup.c: Change all global variables and most functions to static.
(enum_local_groups): Add a print_current parameter to control whether entries
for everything should be printed or just the current user.
(enum_groups): Ditto.
(main): Move call fetch_current_pgrp_sid earlier to avoid a NULL deference when
no command line arguments are specified.  Accommodate argument changes to above
functions.  Avoid printing SYSTEM account when print_current is specified.
Issue error when extra stuff is found on the command line.
* mkpasswd.c: Change all global variables and most functions to static.
(enum_users): Add a print_current parameter to control whether entries for
everything should be printed or just the current user.
(main): Move call fetch_current_user_sid earlier to avoid a NULL deference when
no command line arguments are specified.  Accommodate argument change to above
function.  Avoid printing standard accounts when print_current is specified.
Issue error when extra stuff is found on the command line.
2008-08-17 16:45:44 +00:00
Corinna Vinschen 9258eca9d4 * mkgroup.c (fetch_current_pgrp_sid): New function to fetch primary
group SID from user token.
	(current_group): Move up in file.  Move fetching primary group SID to
	fetch_current_pgrp_sid.
	(enum_local_groups): Check if current SID is the same as current user's
	primary group SID.
	(enum_groups): Ditto.
	(main): Call fetch_current_pgrp_sid before enumerating groups.  Call
	current_group only if current group hasn't been enumerated already.
	* mkpasswd.c (fetch_current_user_sid): New function to fetch current
	user SID from user token.
	(current_user): Move fetching current user SID to
	fetch_current_user_sid.
	(enum_users): Check if current SID is the same as current user's SID.
	(main): Call fetch_current_user_sid before enumerating users.  Call
	current_user only if current user hasn't been enumerated already.
2008-08-15 13:08:47 +00:00
Corinna Vinschen f36c78a487 * mkgroup.c (main): Fix test for duplicate domain/machine request.
* mkpasswd.c (main): Ditto.
2008-07-23 20:12:12 +00:00
Corinna Vinschen f9519bcd1a * mkgroup.c: Rework to allow per-domain/per-machine id_offset.
Add -b option to skip builtin groups.
	(main): Simplify code.
	* mkpasswd.c: Rework to allow per-domain/per-machine id_offset.
	(main): Simplify code.
	* utils.sgml: Explain changed mkgroup/mkpasswd -d/-D/-l/-L options.
	Add mkgroup -b option.
2008-07-23 18:09:50 +00:00
Corinna Vinschen 0bdab5c8a9 * mkgroup.c: Consolidate variable names.
(enum_unix_groups): New function.
	(print_special): Use LookupAccountSidW instead of LookupAccountSidA.
	(current_group): Ditto.
	(usage): Add -U option.
	(longopts): Add --unix option.
	(opts): Add -U option.
	(main): Handle -U option.  Call enum_unix_groups if set.
	* mkpasswd.c: Consolidate variable names.
	(current_user): Use LookupAccountSidW instead of LookupAccountSidA.
	(enum_unix_users): New function.
	(usage): Add -U option.
	(longopts): Add --unix option.
	(opts): Add -U option.
	(main): Handle -U option.  Call enum_unix_groups if set.
	* utils.sgml: Add -U option text to mkgroup and mkpasswd description.
2008-07-23 11:41:10 +00:00
Corinna Vinschen 7e1fdc9e2c * mkgroup.c (enum_groups): Create full qualified groupname using
domain or servername, depending on printing domain or machine accounts.
	* mkpasswd.c (enum_users): Ditto for users.
2008-07-22 20:47:14 +00:00
Corinna Vinschen 4aeb44ee37 * mkgroup.c (main): Remove special root group code. Only print
SYSTEM group in case of printing local machine or local domain groups.
2008-07-22 20:12:02 +00:00
Corinna Vinschen a1e1990348 * Makefile.in (cygcheck.exe): Link against ntdll.
* bloda.cc: Use statically linked functions throughout.
	* cygpath.cc: Drop 9x considerations.
	* mkgroup.c: Revamp.  Redefine -l and -d options to take optional
	machine and domain parameters.  Redefine -c to work always, using
	token information.  Add -L, -D, -C to create unique groupnames in
	domain\group syntax.  Add -S option to define domain\group separator
	char.  Ignore -u and -s options.
	* mkpasswd.c: Revamp.  Redefine -l and -d options to take optional
	machine and domain parameters.  Redefine -c to work always, using
	token information.  Add -L, -D, -C to create unique usernames in
	domain\user syntax.  Add -S option to define domain\user separator
	char.  Ignore -g and -s options.  Prefer to take homedir from $HOME
	over $HOMEDRIVE/$HOMEPATH.
	* path.cc (oopts): Add "acl", "noacl", "posix=0" and "posix=1" options.
	(getmntent): Accomodate throughout.
	* ps.cc: Fix copyright dates.
	* utils.sgml: Fix text for mkgroup and mkpasswd.
2008-07-22 14:40:05 +00:00
Corinna Vinschen 375a780e06 * mkgroup.c: Use statically linked functions throughout, except for
DsGetDcNameW.  Reformat.  Convert to use WCHAR for names throughout.
	Use defines instead of constants throughout.
	(MAX_SID_LEN): Define.
	(load_netapi): Just load DsGetDcNameW pointer.
	(psx_dir): Remove.
	(uni2ansi): Remove.
	(enum_local_users): Take server name and use in Net... call.
	(DBGSID): Define datastructure.
	(MAX_BUILTIN_SIDS): Define.
	(builtin_sid_list): Define global sid list.
	(builtin_sid_cnt): Define counter for global sid list.
	(enum_local_groups): Take server name and use in Net... and Lookup...
	calls.  Take offset argument.  Use MAX_PREFERRED_LENGTH in call to
	NetLocalGroupEnum.  Check for duplicate builtin groups.
	(enum_users): Take server name and use in Net... call.
	(usage): Change text slightly.
	(print_version): Fix copyright.
	(main): Call enum_local_groups for domains as well.
	* mkpasswd.c: Use statically linked functions throughout, except for
	DsGetDcNameW.  Reformat.  Convert to use WCHAR for names throughout.
	Use defines instead of constants throughout.
	(MAX_SID_LEN): Define.
	(load_netapi): Just load DsGetDcNameW pointer.
	(uni2ansi): Use wcstombs.
	(current_user): Replace "unused_by_nt/2000/xp" by
	just "unused".
	(enum_users): Ditto.
	(print_version): Fix copyright.
2008-07-09 14:32:29 +00:00
Dave Korn d848b3419f 2007-08-31 Dave Korn <dave.korn@artimi.com>
* mkgroup.c (enum_groups):  Use MAX_PREFERRED_LENGTH in netgroupenum
	call so that it will automatically size returned buffer sufficiently.
2007-08-31 00:39:41 +00:00
Christopher Faylor 14a4d5989a bad_keywords 2006-01-18 15:57:56 +00:00
Corinna Vinschen d829da1423 Align error message handling to mkpasswd's error messages throughout.
* mkgroup.c (print_win_error): Create macro calling ...
	(_print_win_error): ... this function created from former
	print_win_error.  Move up in source.
	(PDOMAIN_CONTROLLER_INFOW): Define return type of DcGetDcNameW.
	(dsgetdcname): New function pointer for DcGetDcNameW.
	(load_netapi): Get DcGetDcNameW address.
	(main): If DcGetDcNameW is available, use it.
	* mkpasswd.c (PDOMAIN_CONTROLLER_INFOW): Define return type of
	DcGetDcNameW.
	(dsgetdcname): New function pointer for DcGetDcNameW.
	(load_netapi): Get DcGetDcNameW address.
	(main): If DcGetDcNameW is available, use it.  Rename local variable
	domain_name_specified to domain_specified as in mkgroup.c.
2005-09-21 22:26:08 +00:00
Corinna Vinschen e3118d880b * mkgroup.cc (netapibufferallocate,netgroupgetinfo): New function
pointers.
	(load_netapi): Load NetApiBufferAllocate and NetGroupGetInfo.
	(enum_local_groups,enum_groups): Add disp_groupname parameter.
	Load info for disp_groupname if specified.
	(usage): Add description of "-g/--group" option.
	(longopts,opts): Add "-g/--group" option.
	(main): Process "-g/--group" option.
	* utils.sgml (mkgroup): Add description of "-g/--group" option
2004-07-12 16:52:16 +00:00
Corinna Vinschen f25babdf07 * mkgroup.c (main): Print "root" group with local admins group sid
and gid 0.
2003-11-26 15:47:44 +00:00
Corinna Vinschen 508682370b * mkgroup.c: Avoid compiler warnings throughout.
* mkpasswd.c: Ditto.
	* passwd.c: Ditto.
2003-11-14 19:14:43 +00:00
Joshua Daniel Franklin aa275fe010 * cygcheck.cc (usage) Add description output. 2003-04-26 21:52:03 +00:00
Pierre Humblet 57efd527df 2003-04-10 Pierre Humblet <pierre.humblet@ieee.org>
* mkpasswd.c (current_user): print uid and gid as unsigned.
        (enum_users): Ditto. Do not free servername.
        (usage): Update to allow several domains and improve -p.
        (main): On Win9x limit uids to 1000. Only print specials
        when -l is specified. Add a loop to allow several domains
        and free servername in the loop.
        * mkgroup.c (enum_groups): Do not free servername.
        (usage): Update to allow several domains. Change uid to gid.
        (main): Only print specials when -l is specified. Add a
        loop to allow several domains and free servername in the loop.
2003-04-10 01:14:18 +00:00
Pierre Humblet f78765dadd 2003-03-01 Pierre Humblet <pierre.humblet@ieee.org>
* mkpasswd.cc (main): On Win95, output both a default line and a
       line for the current user (if known) with a pseudorandom uid. If
       the -u switch is given, produce a line for the specified user.
       * mkgroup.cc (main): On Win95 change the group name from "unknown" to
       "all".
2003-03-01 16:38:26 +00:00
Corinna Vinschen 3903b47b79 * mkgroup.c: Fix copyright date.
* mkpasswd.c: Ditto.
	* setfacl.c: Ditto.

	Fix ChangeLog typos.
2003-01-15 10:08:37 +00:00
Corinna Vinschen f1c9046a57 * mkpasswd.cc (current_user): Create.
(usage): Reorganize to support Win95/98/ME.
	(main): Add option for -c. Reorganize to parse options for
	Win95/98/ME and to call current_user. Add username in gecos field
	on Win95/98/ME.
	* mkgroup.cc (enum_groups): Print gid with %u.
	(print_win_error): Create from passwd.cc.
	(current_group): Create.
	(usage): Reorganize to support Win95/98/ME.
	(main): Add option for -c. Reorganize to parse options for
	Win95/98/ME and to call current_group.
2003-01-08 17:38:11 +00:00
Christopher Faylor 0fa64fa3a7 * cygpath.cc (close_arg): Remove unused static.
* mkgroup.c (enum_local_users): Avoid compiler warning.
(enum_users): Ditto.
* mkpasswd.c: Ditto throughout.
* ssp.c: Ditto throughout.
2002-09-30 03:01:17 +00:00
Joshua Daniel Franklin 98467dae59 Add final newlines to utils 2002-09-15 19:24:37 +00:00
Corinna Vinschen 32c803daa2 * mkgroup.c (main): Don't print an entry for "Everyone".
* mkpasswd.c (print_special): Set pw_gid to 544 for SYSTEM user.
	(main): Don't print an entry for "Everyone".
2002-08-02 11:14:35 +00:00
Corinna Vinschen d183515c9f * mkgroup.c: Add function pointers for functions from advapi32.dll.
(load_netapi): Load used functions from advapi32.dll.
	(main): Use function pointers instead of statically linked functions
	from advapi32.dll.
2002-07-02 12:59:43 +00:00
Corinna Vinschen eccebec08d * mkgroup.c (main): Change call to exit() to a return statement.
* mkpasswd.c (main): Ditto.

	* mkpasswd.c (usage): Simplify usage output.  Generalize to allow use
	for help. Correct '?' typo to 'h'.
	(longopts): Add version option.
	(opts): Add 'v' version option.
	(print_version): New function.
	(main): Accommodate new version option.  Accommodate usage parameter
	changes.
2002-04-29 10:21:54 +00:00
Christopher Faylor 7a9f3efb1b * mkgroup.c (usage): Use one just fprintf + string concatenation for output
message.
(print_version): Add void to function type and update copyright.
2002-03-19 15:48:40 +00:00
Corinna Vinschen 22a9157c7c * mkgroup.c (usage): Simplify usage output. Generalize to allow use
for help. Correct '?' typo to 'h'.
	(longopts): Add version option.
	(opts): Add 'v' version option.
	(print_version): New function.
	(main): Accommodate new version option.  Accommodate usage parameter
	changes.  Use usage to output help message.
2002-03-19 15:28:13 +00:00
Corinna Vinschen eeec2a4835 2002-03-15 Corinna Vinschen <corinna@vinschen.de>
* mkgroup.c (main): When generating group 513, check for computer's
	primary domain instead of current user's domain.

2002-03-14  Corinna Vinschen  <corinna@vinschen.de>

	* mkgroup.c (main): When generating group 513, check for domain SID
	if computer name isn't mapped to a SID.
2002-03-15 14:53:55 +00:00
Christopher Faylor 012858ecdc * cygcheck.cc: Fix typo. Remove uid_t kludge. Rely on kludge in sys/cygwin.h
instead.
* getfacl.c: Add include to remove warning.
* mkgroup.c (main): Assign variables outside of parameter passing.  This seems
to eliminate some compiler warnings.
2002-01-29 03:08:42 +00:00
Corinna Vinschen 011ec894d2 * mkgroup.c: Avoid compiler warnings.
(print_special): New function.
        (main): Print special accounts by calling print_special().
        * mkpasswd.c: Avoid compiler warnings.
        (enum_users): Print additional U-domain\username info in gecos
        field when SIDs are printed.
        (print_special): New function.
        (main): Print special accounts by calling print_special().
2001-10-20 13:56:09 +00:00
Corinna Vinschen 8a3adc99ec * mkgroup.c: Add function pointers `netlocalgroupgetmembers' and
`netgroupgetusers'.
        (load_netapi): Load function pointers `netlocalgroupgetmembers'
        and `netgroupgetusers'.
        (enum_local_users): New function.
        (enum_local_groups): Call `enum_local_users' for each group if
        `print_users' is set.
        (enum_users): New function.
        (enum_groups): Call `enum_users' for each group if `print_users' is set.
        (usage): Add usage text for `-u/--users'.
        (longopts): Add option `--users'.
        (opts): Add option character `u'.
        (main): Set `print_users' according to option `-u/--users'.
        Call `enum_local_groups' and `enum_groups' with additional parameter
        `print_users'.
2001-04-16 13:19:27 +00:00
Corinna Vinschen 9f2cad57a6 Patch by Kazuhiro Fujieda <fujieda@jaist.ac.jp>:
* mkgroup.c (enum_groups): Use RID + offset specified an additional
        argument as ID.
        (usage): Add description of -o option.
        (longopts, opts): Add specifications of -o/--id-offset option.
        (main): Add -o option. Invoke enum_groups with specified offset.
        * mkpasswd.c (enum_users): Just like mkgroup.c.
        (usage, longopts, opts): Ditto.
        (main): Add -o option. Invoke enum_users with specified offset
        only against domain accounts.
2001-04-15 14:09:33 +00:00
Egor Duda dd9752e88e * mkgroup.c (uni2ansi): Use native method to convert from Unicode
to multi-byte strings.
* mkpasswd.c (uni2ansi): Ditto.
(enum_users): Pass buffer size when converting string.
(enum_local_groups): Ditto.
* mkgroup.c (enum_groups): Ditto.
(enum_local_groups): Ditto.
2001-04-11 09:38:55 +00:00
Corinna Vinschen 315f8fd37b * mkgroup.c (load_netapi): New function to load netapi32.dll functions
dynamically so that mkgroup works on 9x/ME as well.
        Use corresponding function pointers throughout.
        (usage): Change to `int'. Change text to be conformant to mkpasswd.
        (main): Use `getlongopt' to process options.
        Special handling to create a group entry on 9x/ME.
        * mkpasswd.c (load_netapi): New function to load netapi32.dll functions
        dynamically so that mkpasswd works on 9x/ME as well.
        Use corresponding function pointers throughout.
        (usage): Change to `int'. Change text to be conformant to mkgroup.
        (main): Use `getlongopt' to process options.
        Special handling to create a passwd entry on 9x/ME.
        Change conditional to create an entry for the local administrators
        group when appropriate.
2000-11-08 15:00:02 +00:00
Christopher Faylor e73a56e982 * Makefile.in: Eliminate WINSUP_DEPS.
* cygpath.cc: Reorganize includes to accomodate sys/cygwin.h changes.
* mkgroup.c: Ditto.
* mkpasswd.c: Ditto.
* mount.cc: Ditto.  Eliminate use of cygwin source specific includes.
* ps.cc: Ditto.
* cygwin.cc: Eliminate obsolete file.
2000-05-18 18:39:11 +00:00
Corinna Vinschen 0ac91154fc * mkpasswd.c (main): Use GetDCName instead of GetAnyDCName.
Don't create extra passwd entry for administrators group
        if local_groups is set.
        (usage): Change usage text slightly.
        (enum_users): Loop while ERROR_MORE_DATA is returned.
        (enum_local_groups): Ditto.
        * mkgroup.c (enum_local_groups): Ditto.
        (enum_groups) Ditto.
        (usage): Change usage text slightly.
2000-04-15 22:30:49 +00:00
Christopher Faylor 1fd5e000ac import winsup-2000-02-17 snapshot 2000-02-17 19:38:33 +00:00