mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +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 7a1eec6358
)
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
|