fsrvp: add remote snapshot RPC server
authorDavid Disseldorp <ddiss@samba.org>
Tue, 10 Apr 2012 12:32:41 +0000 (14:32 +0200)
committerDavid Disseldorp <ddiss@samba.org>
Fri, 27 Mar 2015 11:19:52 +0000 (12:19 +0100)
commit9d8da0af83a024a4991723af0536c6ed38c48aa1
treefaafb42b576798e52aef60eb1c40500b0ab4e7ae
parent60706d70b7d8d7b231520a38f45287dc1484890b
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>
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