1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
samba-mirror/source4/lib/registry
Andrew Bartlett 2b4791ae73 r7525: Unify lp_load(), load_interfaces and logging setup into popt().
There is now a new --debug-stderr option to enable debug to STDERR.

popt isn't perfect, but the callbacks are used in all the main Samba
binaries, and should be used in the rest.  This avoids duplicated
code, and ensures every binary is setup correctly.

This also ensures the setup happens early enough to have -s function,
and have a correct impact on the credentials code.  (Fixing a bug that
frustrated tridge earlier today).

The only 'subtle' aspect of all this is that I'm pretty sure that the
SAMBA_COMMON popt code must be above the CREDENTIALS code, in the
popt tables.

Andrew Bartlett
(This used to be commit 50f3c2b3a2)
2007-10-10 13:18:06 -05:00
..
common r6795: Make some functions static and remove some unused ones. 2007-10-10 13:16:44 -05:00
man r7113: Move manpages from docs repository to source repository 2007-10-10 13:17:18 -05:00
tools r7525: Unify lp_load(), load_interfaces and logging setup into popt(). 2007-10-10 13:18:06 -05:00
config.m4 r7373: Disable reg_gconf by default, allow building it with --enable-reg-gconf 2007-10-10 13:17:47 -05:00
config.mk r4132: - Bunch of rather large fixes in the registry 2007-10-10 13:06:29 -05:00
README r4155: More destinction between hives and predefined keys 2007-10-10 13:07:20 -05:00
reg_backend_dir.c r5298: - got rid of pstring.h from includes.h. This at least makes it a bit 2007-10-10 13:09:38 -05:00
reg_backend_gconf.c r5303: fixed build of gconf registry backend 2007-10-10 13:09:39 -05:00
reg_backend_ldb.c r6520: Fix unused variable warning. 2007-10-10 13:16:21 -05:00
reg_backend_nt4.c r6045: Couple of small GTK+ fixes 2007-10-10 13:11:16 -05:00
reg_backend_rpc.c r6795: Make some functions static and remove some unused ones. 2007-10-10 13:16:44 -05:00
reg_backend_w95.c r5134: - fix types to always use _t types 2007-10-10 13:09:25 -05:00
reg_backend_wine.c r4132: - Bunch of rather large fixes in the registry 2007-10-10 13:06:29 -05:00
reg_samba.c r5298: - got rid of pstring.h from includes.h. This at least makes it a bit 2007-10-10 13:09:38 -05:00
TODO r2518: Some long overdue changes: 2007-10-10 12:59:01 -05:00
winregistry.pc.in r20: Add the registry library. Still needs a lot of work, 2007-10-10 12:50:33 -05:00

This is the registry library. The registry is basically a bunch of hives 
that can be loaded from different places.

The various registry backends provide support for loading/saving specific types 
of hives:
 - ldb 
 - w95 (USER.DAT-style files)
 - nt4 (NTUSER.DAT-style files)
 - gconf (GNOME configuration)
 - rpc (Remote individual hives)

Instead of opening individual hives, one can also open a 'complete' registry by 
using one of these three functions:
 
 - reg_open_local() - load local registry, see below
 - reg_open_remote() - connect to remote registry over RPC
 - reg_open_wine() (not working yet)

reg_open_local() loads a set of hives based on smb.conf settings. 
Lines in smb.conf should have the following syntax:

registry:<hivename> = <backend>:<location>

So an example usage could be:

registry:HKEY_CURRENT_USER = nt4:NTUSER.DAT
registry:HKEY_LOCAL_MACHINE = ldb:tdb://registry.tdb

WERR_NOT_SUPPORTED will be returned for all hives that haven't been set.

On Windows the various registry hives are loaded from:

HKEY_CURRENT_CONFIG: %SystemRoot%\System32\Config\System
HKEY_CURRENT_USER: %Profile%\NTUser.dat
HKEY_LOCAL_MACHINE\SAM: %SystemRoot%\System32\Config\Sam
HKEY_LOCAL_MACHINE\Security: %SystemRoot%\System32\Config\Security
HKEY_LOCAL_MACHINE\Software: %SystemRoot%\System32\Config\Software
HKEY_LOCAL_MACHINE\System: %SystemRoot%\System32\Config\System
HKEY_USERS\.DEFAULT: %SystemRoot%\System32\Config\Default
HKEY_LOCAL_MACHINE\HARDWARE: is autogenerated