1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-17 04:23:50 +03:00

Makefile: Added ubi_sLinkList.o as the groupname.o file needs it. Added groupname.o

includes.h: Added ubi_sLinkList.h include.
loadparm.c: Added groupname map parameter.
password.c: Fix HPUX big_crypt.
username.c: New user_in_list() code. Moved groupname map code to groupname.c
lib/rpc/server/srv_util.c: Added lookup_wellknown_sid_from_name().

New groupname map stuff. Note that nothing currently uses this but at
compiles ok.

Jeremy.
This commit is contained in:
Jeremy Allison
-
parent a70b929ec7
commit beef636a4d
6 changed files with 202 additions and 239 deletions

View File

@@ -42,44 +42,83 @@
#include "nterr.h"
extern int DEBUGLEVEL;
extern DOM_SID global_machine_sid;
/*
* A list of the rids of well known BUILTIN and Domain users
* and groups.
*/
rid_name builtin_alias_rids[] =
{
{ BUILTIN_ALIAS_RID_ADMINS , "Administrators" },
{ BUILTIN_ALIAS_RID_USERS , "Users" },
{ BUILTIN_ALIAS_RID_GUESTS , "Guests" },
{ BUILTIN_ALIAS_RID_POWER_USERS , "Power Users" },
{ BUILTIN_ALIAS_RID_ACCOUNT_OPS , "Account Operators" },
{ BUILTIN_ALIAS_RID_SYSTEM_OPS , "System Operators" },
{ BUILTIN_ALIAS_RID_PRINT_OPS , "Print Operators" },
{ BUILTIN_ALIAS_RID_BACKUP_OPS , "Backup Operators" },
{ BUILTIN_ALIAS_RID_REPLICATOR , "Replicator" },
{ 0 , NULL }
rid_name builtin_alias_rids[] =
{
{ BUILTIN_ALIAS_RID_ADMINS , "Administrators" },
{ BUILTIN_ALIAS_RID_USERS , "Users" },
{ BUILTIN_ALIAS_RID_GUESTS , "Guests" },
{ BUILTIN_ALIAS_RID_POWER_USERS , "Power Users" },
{ BUILTIN_ALIAS_RID_ACCOUNT_OPS , "Account Operators" },
{ BUILTIN_ALIAS_RID_SYSTEM_OPS , "System Operators" },
{ BUILTIN_ALIAS_RID_PRINT_OPS , "Print Operators" },
{ BUILTIN_ALIAS_RID_BACKUP_OPS , "Backup Operators" },
{ BUILTIN_ALIAS_RID_REPLICATOR , "Replicator" },
{ 0 , NULL }
};
/* array lookup of well-known Domain RID users. */
rid_name domain_user_rids[] =
{
{ DOMAIN_USER_RID_ADMIN , "Administrator" },
{ DOMAIN_USER_RID_GUEST , "Guest" },
{ 0 , NULL }
rid_name domain_user_rids[] =
{
{ DOMAIN_USER_RID_ADMIN , "Administrator" },
{ DOMAIN_USER_RID_GUEST , "Guest" },
{ 0 , NULL }
};
/* array lookup of well-known Domain RID groups. */
rid_name domain_group_rids[] =
{
{ DOMAIN_GROUP_RID_ADMINS , "Domain Admins" },
{ DOMAIN_GROUP_RID_USERS , "Domain Users" },
{ DOMAIN_GROUP_RID_GUESTS , "Domain Guests" },
{ 0 , NULL }
rid_name domain_group_rids[] =
{
{ DOMAIN_GROUP_RID_ADMINS , "Domain Admins" },
{ DOMAIN_GROUP_RID_USERS , "Domain Users" },
{ DOMAIN_GROUP_RID_GUESTS , "Domain Guests" },
{ 0 , NULL }
};
/**************************************************************************
Check if a name matches any of the well known SID values.
***************************************************************************/
BOOL lookup_wellknown_sid_from_name(char *windows_name, DOM_SID *psid)
{
rid_name *rnp;
int i;
for( i = 0; builtin_alias_rids[i].name != NULL; i++) {
rnp = &builtin_alias_rids[i];
if(strequal(rnp->name, windows_name)) {
string_to_sid( psid, "S-1-5-32" );
psid->sub_auths[psid->num_auths++] = rnp->rid;
return True;
}
}
for( i = 0; domain_user_rids[i].name != NULL; i++ ) {
rnp = &domain_user_rids[i];
if(strequal(rnp->name, windows_name)) {
*psid = global_machine_sid;
psid->sub_auths[psid->num_auths++] = rnp->rid;
return True;
}
}
for( i = 0; domain_group_rids[i].name != NULL; i++ ) {
rnp = &domain_group_rids[i];
if(strequal(rnp->name, windows_name)) {
*psid = global_machine_sid;
psid->sub_auths[psid->num_auths++] = rnp->rid;
return True;
}
}
return False;
}
int make_dom_gids(char *gids_str, DOM_GID **ppgids)
{