* security.h: Declare internal_getpwsid and internal_getgrsid.
Undeclare internal_getpwent. Define DEFAULT_UID_NT. Change DEFAULT_GID. * passwd.cc (internal_getpwsid): New function. (internal_getpwent): Suppress. (read_etc_passwd): Make static. Rewrite the code for the completion line. Set curr_lines to 0. (parse_pwd): Change type to static int. Return 0 for short lines. (add_pwd_line): Pay attention to the value of parse_pwd. (search_for): Do not look for nor return the DEFAULT_UID. * grp.cc (read_etc_group): Make static. Free gr_mem and set curr_lines to 0. Always call add_pwd_line. Rewrite the code for the completion line. (internal_getgrsid): New function. (parse_grp): If grp.gr_mem is empty, set it to &null_ptr. Never NULL gr_passwd. (getgrgid32): Only return the default if ntsec is off and the gid is ILLEGAL_GID. * sec_helper.cc (cygsid::get_id): Use getpwsid and getgrsid. (cygsid_getfrompw): Clean up last line. (cygsid_getfromgr): Ditto. (is_grp_member): Use getpwuid32 and getgrgid32. * uinfo.cc (internal_getlogin): Set DEFAULT_GID at start. Use getpwsid. Move the read of /etc/group after the second access to /etc/passwd. Change some debug_printf.
This commit is contained in:
@@ -11,7 +11,8 @@ details. */
|
||||
#include <accctrl.h>
|
||||
|
||||
#define DEFAULT_UID DOMAIN_USER_RID_ADMIN
|
||||
#define DEFAULT_GID DOMAIN_ALIAS_RID_ADMINS
|
||||
#define DEFAULT_UID_NT 400 /* Non conflicting number */
|
||||
#define DEFAULT_GID 401
|
||||
|
||||
#define MAX_SID_LEN 40
|
||||
#define MAX_DACL_LEN(n) (sizeof (ACL) \
|
||||
@@ -203,11 +204,12 @@ extern BOOL allow_ntea;
|
||||
extern BOOL allow_ntsec;
|
||||
extern BOOL allow_smbntsec;
|
||||
|
||||
/* These both functions are needed to allow walking through the passwd
|
||||
/* These functions are needed to allow walking through the passwd
|
||||
and group lists so they are somehow security related. Besides that
|
||||
I didn't find a better place to declare them. */
|
||||
extern struct passwd *internal_getpwent (int);
|
||||
extern struct __group32 *internal_getgrent (int);
|
||||
extern struct passwd *internal_getpwsid (cygsid &);
|
||||
extern struct __group32 *internal_getgrsid (cygsid &);
|
||||
|
||||
/* File manipulation */
|
||||
int __stdcall set_process_privileges ();
|
||||
|
Reference in New Issue
Block a user