From SambaWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

RPC support for samba configuration

Student name: Vicentiu Ciorbaru

student git repo:


Samba has a registry based configuration backend: Configuration data is stored inside the registry key HKEY_LOCAL_MACHINE\Software\Samba\smbconf. A tool for reading and writing this registry stored configuration is "net conf". Access to the registry-stored configuration is performed through a module that makes use of the "reg_api" module which is the backend code for direct local access to the registry database. The reg_api interface is similar to the WINREG rpc interface. The basic goal of this project is to develop a remote variant of the "net conf" tool that allows for configuring a remote samba server with the same convenience as offered by the "net conf" tool.




net conf --> libsmbconf --> registry backend:reg_api --> registry database

possible for a new "net rpc conf":

net rpc conf --> libsmbconf --> remote registry backend:winreg --> remote server --> registry database

similar: compare "net registry" to "net rpc registry" (source3/utils/net_registry.c and source3/utils/net_rpc_registry.c)

alternative approaches (maybe as a second step):

  • create a wrapper around winreg and reg_api that could be used in libsmbconf and could also be used to unify the logic of net registry and net rpc registry


  • get acquainted with net conf, libsmbconf, net registry, net rpc registry [DONE]
  • compare implementation of net registry and net rpc registry [IN PROCESS]
  • get an idea of how to create a remote registry variant of "net conf" [IN PROCESS]
  • basically: write a remote registry backend for "libsmbconf"


  • lib/smbconf/ : general api, text backend
  • source3/lib/smbconf/ : registry backend


  • create net_rpc_conf.c (.h)
  • implement basic command (HINT: Have a look at other commands to see how others fit in)

-* get net rpc conf list using something like net rpc registry