diff options
author | Gerald (Jerry) Carter <jerry@samba.org> | 2008-09-15 15:41:37 -0500 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-09-16 10:27:49 -0700 |
commit | d6de32db2f8d080cb746b3032c128f210154b75e (patch) | |
tree | 3a28e1eefd2f2c3773aa0bb030372707d4e63f48 /source3/winbindd/nss_info_template.c | |
parent | f2723d193d8a7963b937414ee32e5c6f529b9032 (diff) | |
download | samba-d6de32db2f8d080cb746b3032c128f210154b75e.tar.gz samba-d6de32db2f8d080cb746b3032c128f210154b75e.tar.bz2 samba-d6de32db2f8d080cb746b3032c128f210154b75e.zip |
winbindd: Add support for name aliasing.
* Add support user and group name aliasing by expanding
the ws_name_replace() and ws_name_return() functions.
The lookup path is
aliases -> qualified name -> SID
SID -> fully qualified name -> alias
In other words, the name aliasing support is a thin layer
built on top of SID/NAME translation.
* Rename the ws_name_XX() functions to normalize_name_map()
and normalize_name_unmap(). Chaneg interface to return
NTSTATUS rather than char *.
* Add associated cache validation functions.
Diffstat (limited to 'source3/winbindd/nss_info_template.c')
-rw-r--r-- | source3/winbindd/nss_info_template.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/source3/winbindd/nss_info_template.c b/source3/winbindd/nss_info_template.c index aaf02e4abe..d8f903ddd0 100644 --- a/source3/winbindd/nss_info_template.c +++ b/source3/winbindd/nss_info_template.c @@ -45,6 +45,8 @@ static NTSTATUS nss_template_get_info( struct nss_domain_entry *e, if ( !homedir || !shell || !gecos ) return NT_STATUS_INVALID_PARAMETER; + /* protect against home directories using whitespace in the + username */ *homedir = talloc_strdup( ctx, lp_template_homedir() ); *shell = talloc_strdup( ctx, lp_template_shell() ); *gecos = NULL; @@ -56,6 +58,28 @@ static NTSTATUS nss_template_get_info( struct nss_domain_entry *e, return NT_STATUS_OK; } +/********************************************************************** + *********************************************************************/ + +static NTSTATUS nss_template_map_to_alias( TALLOC_CTX *mem_ctx, + const char *domain, + const char *name, + char **alias ) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + +/********************************************************************** + *********************************************************************/ + +static NTSTATUS nss_template_map_from_alias( TALLOC_CTX *mem_ctx, + const char *domain, + const char *alias, + char **name ) +{ + return NT_STATUS_NOT_IMPLEMENTED; +} + /************************************************************************ ***********************************************************************/ @@ -69,9 +93,11 @@ static NTSTATUS nss_template_close( void ) ***********************************************************************/ static struct nss_info_methods nss_template_methods = { - .init = nss_template_init, - .get_nss_info = nss_template_get_info, - .close_fn = nss_template_close + .init = nss_template_init, + .get_nss_info = nss_template_get_info, + .map_to_alias = nss_template_map_to_alias, + .map_from_alias = nss_template_map_from_alias, + .close_fn = nss_template_close }; NTSTATUS nss_info_template_init( void ) |