Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
NSS_WRAPPER(1)							  NSS_WRAPPER(1)

NAME
     nss_wrapper - A wrapper for the user, group and hosts NSS API

SYNOPSIS
     LD_PRELOAD=libnss_wrapper.so  NSS_WRAPPER_PASSWD=/path/to/passwd  NSS_WRAP-
     PER_GROUP=/path/to/group NSS_WRAPPER_HOSTS=/path/to/host ./myapplication

DESCRIPTION
     There are projects which provide daemons needing to be able to create, mod-
     ify and delete Unix users. Or just switch user ids  to  interact  with  the
     system  e.g. a user space file server. To be able to test that you need the
     privilege to modify the passwd and groups file. With nss_wrapper it is pos-
     sible to define your own passwd and groups file which will be used by soft-
     ware to act correctly while under test.

     If you have a client and server under test they normally use  functions  to
     resolve  network  names  to addresses (dns) or vice versa. The nss_wrappers
     allow you to create a hosts file to setup name resolution for the addresses
     you use with socket_wrapper.

     *	 Provides information for user and group accounts.

     *	 Network name resolution using a hosts file.

     *	 Loading and testing of NSS modules.

LIMITATIONS
     Some calls in nss_wrapper will only work if uid_wrapper is loaded	and  ac-
     tive.  One of this functions is initgroups() which needs to run setgroups()
     to set the groups for the user. setgroups() is wrapped by uid_wrapper.

ENVIRONMENT VARIABLES
     NSS_WRAPPER_PASSWD, NSS_WRAPPER_GROUP
	 For user and group accounts you need to create two  files:  passwd  and
	 group. The format of the passwd file we support is:

     name:password:UID:GID:GECOS:directory:shell

     The format of the group file we support is:

     group_name:password:GID:user_list

     They  are	also described in man passwd.5 and man group.5 on Linux. You can
     fill these files with made up accounts. You point nss_wrapper to them using
     the two  variables  NSS_WRAPPER_PASSWD=/path/to/your/passwd  and  NSS_WRAP-
     PER_GROUP=/path/to/your/group.

     NSS_WRAPPER_HOSTS
	 If  you  also	need to emulate network name resolution in your environ-
	 ment, especially with socket_wrapper, you can write a hosts  file.  The
	 format  is  described in man 5 hosts. Then you can point nss_wrapper to
	 your hosts file using: NSS_WRAPPER_HOSTS=/path/to/your/hosts

     NSS_WRAPPER_HOSTNAME
	 If you need to return a hostname which is different  from  the  one  of
	 your  machine	is  using  you	can use: NSS_WRAPPER_HOSTNAME=test.exam-
	 ple.org

     NSS_WRAPPER_MODULE_SO_PATH, NSS_WRAPPER_MODULE_FN_PREFIX
	 If you have a project which also provides user  and  group  information
	 out of a database, you normally write your own nss modules. nss_wrapper
	 is  able to load nss modules and ask them first before looking into the
	 faked passwd and group file. To point nss_wrapper to the module you can
	 do that using NSS_WRAPPER_MODULE_SO_PATH=/path/to/libnss_yourmodule.so.
	 As each nss module has a special  prefix  like  _nss_winbind_getpwnam()
	 you  need  to	set the prefix too so nss_wrapper can load the functions
	 with NSS_WRAPPER_MODULE_FN_PREFIX=<prefix>.

     For _nss_winbind_getpwnam() this would be:

	 NSS_WRAPPER_MODULE_FN_PREFIX=winbind

     NSS_WRAPPER_DEBUGLEVEL
	 If you need to see what is going on in nss_wrapper  itself  or  try  to
	 find  a bug, you can enable logging support in nss_wrapper if you built
	 it with debug symbols.

	 *   0 = ERROR

	 *   1 = WARNING

	 *   2 = DEBUG

	 *   3 = TRACE

     NSS_WRAPPER_DISABLE_DEEPBIND
	 This allows you to disable deep binding in nss_wrapper. This is  useful
	 for  running  valgrind  tools	or  sanitizers like (address, undefined,
	 thread).

EXAMPLE
	 $ echo "bob:x:1000:1000:bob gecos:/home/test/bob:/bin/false" > passwd
	 $ echo "root:x:65534:65532:root gecos:/home/test/root:/bin/false" >> passwd
	 $ echo "users:x:1000:" > group
	 $ echo "root:x:65532:" >> group
	 $ LD_PRELOAD=libnss_wrapper.so NSS_WRAPPER_PASSWD=passwd \
	   NSS_WRAPPER_GROUP=group getent passwd bob
	 bob:x:1000:1000:bob gecos:/home/test/bob:/bin/false
	 $ LD_PRELOAD=libnss_wrapper.so NSS_WRAPPER_HOSTNAME=test.example.org hostname
	 test.example.org

AUTHOR
     Samba Team

				   2024-07-05			  NSS_WRAPPER(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nss_wrapper&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help