1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source3/rpc_server/wscript_build
David Disseldorp b6e034069f 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>
2015-03-31 18:40:25 +02:00

176 lines
6.1 KiB
Python
Executable File

#!/usr/bin/env python
### RPC_SERVER
bld.SAMBA3_SUBSYSTEM('rpc',
source='',
deps='RPC_PIPE_REGISTER')
bld.SAMBA3_SUBSYSTEM('RPC_CONFIG',
source='rpc_config.c',
deps='talloc')
bld.SAMBA3_SUBSYSTEM('RPC_NCACN_NP',
source='rpc_ncacn_np.c rpc_handles.c rpc_contexts.c',
deps='RPC_CONFIG auth auth_sam_reply RPC_PIPE_REGISTER npa_tstream')
bld.SAMBA3_SUBSYSTEM('RPC_SERVER_LOOP',
source='rpc_server.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_CRYPTO',
source='dcesrv_auth_generic.c',
deps = 'KRB5_PAC')
bld.SAMBA3_SUBSYSTEM('RPC_PIPE_REGISTER',
source='srv_pipe_register.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('SRV_ACCESS_CHECK',
source='srv_access_check.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_SERVER',
source='srv_pipe_hnd.c srv_pipe.c',
deps='''
RPC_CONFIG
RPC_NCACN_NP
RPC_SERVER_LOOP
RPC_CRYPTO
NDR_NAMED_PIPE_AUTH
''')
### RPC_SERVICES
bld.SAMBA3_SUBSYSTEM('RPC_DSSETUP',
source='''dssetup/srv_dssetup_nt.c
../../librpc/gen_ndr/srv_dssetup.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_EPMAPPER',
source='''epmapper/srv_epmapper.c
../../librpc/gen_ndr/srv_epmapper.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_FSS_STATE',
source='''fss/srv_fss_state.c''',
deps='samba-util NDR_FSRVP_STATE')
bld.SAMBA3_SUBSYSTEM('RPC_FSS_AGENT',
source='''fss/srv_fss_agent.c
../../librpc/gen_ndr/srv_fsrvp.c''',
deps='samba-util RPC_FSS_STATE')
bld.SAMBA3_SUBSYSTEM('RPC_EVENTLOG',
source='''eventlog/srv_eventlog_nt.c
eventlog/srv_eventlog_reg.c
../../librpc/gen_ndr/srv_eventlog.c''',
deps='LIBEVENTLOG LIBCLI_WINREG_INTERNAL')
bld.SAMBA3_SUBSYSTEM('RPC_INITSHUTDOWN',
source='''initshutdown/srv_initshutdown_nt.c
../../librpc/gen_ndr/srv_initshutdown.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_LSARPC',
source='''lsa/srv_lsa_nt.c
../../librpc/gen_ndr/srv_lsa.c''',
deps='SRV_ACCESS_CHECK LIBLSA')
bld.SAMBA3_SUBSYSTEM('RPC_NETDFS',
source='''dfs/srv_dfs_nt.c
../../librpc/gen_ndr/srv_dfs.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_NETLOGON',
source='''netlogon/srv_netlog_nt.c
../../librpc/gen_ndr/srv_netlogon.c''')
bld.SAMBA3_SUBSYSTEM('RPC_NTSVCS',
source='''ntsvcs/srv_ntsvcs_nt.c
../../librpc/gen_ndr/srv_ntsvcs.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_RPCECHO',
source='''echo/srv_echo_nt.c
../../librpc/gen_ndr/srv_echo.c''',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_SAMR',
source='''samr/srv_samr_nt.c
samr/srv_samr_util.c
samr/srv_samr_chgpasswd.c
../../librpc/gen_ndr/srv_samr.c''',
deps='PLAINTEXT_AUTH SRV_ACCESS_CHECK')
bld.SAMBA3_SUBSYSTEM('RPC_SPOOLSS',
source='''spoolss/srv_spoolss_nt.c
../../librpc/gen_ndr/srv_spoolss.c
spoolss/srv_spoolss_util.c''',
deps='PRINTING PRINTBACKEND LIBCLI_WINREG_INTERNAL')
bld.SAMBA3_SUBSYSTEM('RPC_SRVSVC',
source='''srvsvc/srv_srvsvc_nt.c
../../librpc/gen_ndr/srv_srvsvc.c''',
deps='samba-util tdb')
bld.SAMBA3_SUBSYSTEM('RPC_SVCCTL',
source='''svcctl/srv_svcctl_nt.c
svcctl/srv_svcctl_reg.c
../../librpc/gen_ndr/srv_svcctl.c''',
deps='SERVICES LIBCLI_WINREG_INTERNAL')
bld.SAMBA3_SUBSYSTEM('RPC_WINREG',
source='''winreg/srv_winreg_nt.c
../../librpc/gen_ndr/srv_winreg.c''',
deps='REG_FULL REGFIO REG_API_REGF NDR_PERFCOUNT')
bld.SAMBA3_SUBSYSTEM('RPC_WKSSVC',
source='''wkssvc/srv_wkssvc_nt.c
../../librpc/gen_ndr/srv_wkssvc.c''',
deps='LIBNET')
# RPC_SERVICE
bld.SAMBA3_SUBSYSTEM('RPC_SERVER_REGISTER',
source='rpc_ep_register.c ../librpc/rpc/dcerpc_ep.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('RPC_SERVICE',
source='rpc_service_setup.c',
deps='''
RPC_SERVER
RPC_SERVER_REGISTER
RPC_SAMR
RPC_LSARPC
RPC_WINREG
RPC_INITSHUTDOWN
RPC_DSSETUP
RPC_WKSSVC
RPC_SVCCTL
RPC_NTSVCS
RPC_NETLOGON
RPC_NETDFS
RPC_SRVSVC
RPC_SPOOLSS
RPC_EVENTLOG
RPC_RPCECHO
RPC_SERVER
RPC_EPMAPPER
RPC_FSS_AGENT
''')
# RPC_DAEMONS
bld.SAMBA3_SUBSYSTEM('RPC_SOCK_HELPER',
source='rpc_sock_helper.c',
deps='RPC_SERVER_REGISTER')
bld.SAMBA3_SUBSYSTEM('EPMD',
source='epmd.c',
deps='samba-util')
bld.SAMBA3_SUBSYSTEM('LSASD',
source='lsasd.c',
deps='RPC_SOCK_HELPER samba-util')
bld.SAMBA3_SUBSYSTEM('FSSD',
source='fssd.c',
deps='samba-util')