mirror of
https://github.com/samba-team/samba.git
synced 2025-01-17 02:05:21 +03:00
b409d4120f
been working on for at least half a year now. Contains the following improvements: * proper layering (finally!) for the registry library. Distinction is now made between 'real' backends (local, remote, wine, etc) and the low-level hive backends (regf, creg, ldb, ...) that are only used by the local registry backend * tests for all important hive and registry operations * re-enable RPC-WINREG tests (still needs more work though, as some return values aren't checked yet) * write support for REGF files * dir backend now supports setting/reading values, creating keys * support for storing security descriptors * remove CREG backend as it was incomplete, didn't match the data model and wasn't used at all anyway * support for parsing ADM files as used by the policy editor (see lib/policy) * support for parsing PREG files (format used by .POL files) * new streaming interface for registry diffs (improves speed and memory usage for regdiff/regpatch significantly) ... and fixes a large number of bugs in the registry code (This used to be commit 7a1eec6358bc863dfc671c542b7185d3e39d7b5a)
43 lines
1.5 KiB
Plaintext
43 lines
1.5 KiB
Plaintext
This is the registry library. The registry is basically a bunch of
|
|
hives, each of which is loaded from a file. When using a local registry,
|
|
it is possible to specify where hives should be loaded from, etc.
|
|
|
|
There are separate APIs for accessing the data in a hive and the
|
|
data in the registry itself. Each supports different backends.
|
|
|
|
The following "full registry" backends are currently provided:
|
|
|
|
* Remote (over DCE/RPC)
|
|
* Local (allows "mounting" hives)
|
|
* Wine (uses the wine plain-text file)
|
|
|
|
The following hive backends are supported:
|
|
|
|
- ldb
|
|
- regf (NTUSER.DAT-style files)
|
|
- rpc (Remote individual hives)
|
|
- directory
|
|
|
|
reg_open_samba() 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 = regf: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
|