fsrvp: add remote snapshot RPC server
commitb6e034069f2a61d622c9fcacd30ff63e2fb59f92
authorDavid Disseldorp <ddiss@samba.org>
Tue, 10 Apr 2012 12:32:41 +0000 (10 14:32 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 31 Mar 2015 16:40:25 +0000 (31 18:40 +0200)
tree95baee07bda76e126b1727674afe3a09cff42126
parent9f7dd07d2658ac50ea3a1db8c4541ec3f87b8d6b
fsrvp: add remote snapshot RPC server

The Samba fss_agent RPC server is an implementation of the File Server
Remote VSS (Volume Shadow Copy Service) Protocol, or FSRVP for short.

FSRVP is new with Windows Server 2012, and allows authenticated clients
to remotely request the creation, exposure and deletion of share
snapshots.

The fss_agent RPC server processes requests on the FssAgentRpc named
pipe, and dispatches relevant snapshot creation and deletion requests
through to the VFS.
The registry smb.conf back-end is used to expose snapshot shares, with
configuration parameters and share ACLs cloned from the base share.

There are three FSRVP client implementations that I'm aware of:
- Samba rpcclient includes fss_X commands.
- Windows Server 2012 includes diskshadow.exe.
- System Center 2012.

FSRVP operations are only processed for users with:
- Built-in Administrators group membership, or
- Built-in Backup Operators group membership, or
- Backup Operator privileges, or
- Security token matches the initial process UID

MS-FSRVP specifies that server state should be stored persistently
during operation and retrieved on startup. Use the existing fss_srv.tdb
FSRVP state storage back-end to satisfy this requirement.

Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/rpc_server/fss/srv_fss_agent.c [new file with mode: 0644]
source3/rpc_server/fss/srv_fss_agent.h [new file with mode: 0644]
source3/rpc_server/fssd.c [new file with mode: 0644]
source3/rpc_server/rpc_config.c
source3/rpc_server/rpc_config.h
source3/rpc_server/wscript_build
source3/smbd/server.c
source3/wscript_build