xref: /illumos-gate/usr/src/cmd/smbsrv/smbd/server.xml (revision e75b2cb0)
1<?xml version="1.0"?>
2<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
3<!--
4
5CDDL HEADER START
6
7The contents of this file are subject to the terms of the
8Common Development and Distribution License (the "License").
9You may not use this file except in compliance with the License.
10
11You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12or http://www.opensolaris.org/os/licensing.
13See the License for the specific language governing permissions
14and limitations under the License.
15
16When distributing Covered Code, include this CDDL HEADER in each
17file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18If applicable, add the following below this CDDL HEADER, with the
19fields enclosed by brackets "[]" replaced with your own identifying
20information: Portions Copyright [yyyy] [name of copyright owner]
21
22CDDL HEADER END
23
24Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
25Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
26Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
27
28NOTE:  This service manifest is not editable; its contents will
29be overwritten by package or patch operations, including
30operating system upgrade.  Make customizations in a different
31file.
32
33-->
34
35<service_bundle type='manifest' name='SUNWsmbsr:smb-server'>
36
37<!-- 1. Name the service to 'network/smb/server' -->
38<service
39    name='network/smb/server'
40    type='service'
41    version='2'>
42
43	<!-- 2. Create default service instance. -->
44	<create_default_instance enabled='false' />
45
46	<!-- 3. Service has single instance -->
47	<single_instance/>
48
49	<!-- 4. Identify dependencies -->
50
51	<dependency name='network'
52	    grouping='require_any'
53	    restart_on='error'
54	    type='service'>
55		<service_fmri value='svc:/milestone/network'/>
56	</dependency>
57
58	<!-- Must have all local filesystems mounted before we share them -->
59	<dependency name='filesystem-local'
60	    grouping='require_all'
61	    restart_on='error'
62	    type='service'>
63		<service_fmri value='svc:/system/filesystem/local'/>
64	</dependency>
65
66	<!-- Must have idmap service started -->
67	<dependency name='idmap'
68	    grouping='require_all'
69	    restart_on='none'
70	    type='service'>
71		<service_fmri value='svc:/system/idmap:default'/>
72	</dependency>
73
74	<!-- Must have SMB client service started -->
75	<dependency name='smb-client'
76	    grouping='require_all'
77	    restart_on='none'
78	    type='service'>
79		<service_fmri value='svc:/network/smb/client:default'/>
80	</dependency>
81
82	<!--
83	    Want to make sure that the network/shares/group service
84	    starts after the smb/server service.  It needs to be
85	    optional in order to not cause failure if smb is
86	    disabled.
87	-->
88	<dependent name='groups'
89	    grouping="optional_all"
90	    restart_on='error' >
91		    <service_fmri value='svc:/network/shares/group'/>
92	</dependent>
93
94	<!-- 5. Identify start/stop/refresh methods -->
95	<exec_method
96		type='method'
97		name='start'
98		exec='/usr/lib/smbsrv/smbd %m'
99		timeout_seconds='60' >
100		<!-- XXX: need method_context? -->
101	</exec_method>
102
103	<exec_method
104		type='method'
105		name='stop'
106		exec=':kill'
107		timeout_seconds='60' />
108
109	<exec_method
110		type='method'
111		name='refresh'
112		exec=':kill -HUP'
113		timeout_seconds='60' />
114
115	<property_group name='general' type='framework'>
116		<!-- To Start/Stop/Refresh the service -->
117		<propval name='action_authorization' type='astring'
118			value='solaris.smf.manage.smb' />
119		<propval name='value_authorization' type='astring'
120			value='solaris.smf.manage.smb' />
121	</property_group>
122
123	<property_group name='firewall_context' type='com.sun,fw_definition'>
124		<propval name='ipf_method' type='astring'
125		    value='/lib/svc/method/svc-smbd ipfilter' />
126	</property_group>
127
128	<property_group name='firewall_config' type='com.sun,fw_configuration'>
129		<propval name='policy' type='astring' value='use_global' />
130		<propval name='block_policy' type='astring'
131			value='use_global' />
132		<propval name='apply_to' type='astring' value='' />
133		<propval name='apply_to_6' type='astring' value='' />
134		<propval name='exceptions' type='astring' value='' />
135		<propval name='exceptions_6' type='astring' value='' />
136		<propval name='target' type='astring' value='' />
137		<propval name='target_6' type='astring' value='' />
138		<propval name='value_authorization' type='astring'
139			value='solaris.smf.value.firewall.config' />
140	</property_group>
141
142	<property_group name='read' type='application'>
143		<!-- To read protected parameters -->
144		<propval name='read_authorization' type='astring'
145			value='solaris.smf.read.smb' />
146		<propval name='value_authorization' type='astring'
147			value='solaris.smf.value.smb' />
148		<propval name='machine_passwd' type='astring' value='' />
149	</property_group>
150
151	<!-- SMB service-specific general configuration defaults -->
152	<property_group name='smbd' type='application'>
153		<stability value='Evolving' />
154		<propval name='value_authorization' type='astring'
155			value='solaris.smf.value.smb' />
156		<propval name='oplock_enable' type='boolean'
157			value='true' override='true'/>
158		<propval name='autohome_map' type='astring'
159			value='/etc' override='true'/>
160		<propval name='bypass_traverse_checking' type='boolean'
161			value='true' override='true'/>
162		<propval name='debug' type='integer'
163			value='0' override='true'/>
164		<propval name='domain_sid' type='astring'
165			value='' override='true'/>
166		<propval name='domain_member' type='boolean'
167			value='false' override='true'/>
168		<propval name='domain_name' type='astring'
169			value='WORKGROUP' override='true'/>
170		<propval name='fqdn' type='astring'
171			value='' override='true'/>
172		<propval name='forest' type='astring'
173			value='' override='true'/>
174		<propval name='domain_guid' type='astring'
175			value='' override='true'/>
176		<propval name='pdc' type='astring'
177			value='' override='true'/>
178		<propval name='wins_server_1' type='astring'
179			value='' override='true'/>
180		<propval name='wins_server_2' type='astring'
181			value='' override='true'/>
182		<propval name='wins_exclude' type='astring'
183			value='' override='true'/>
184		<propval name='max_workers' type='integer'
185			value='1024' override='true'/>
186		<propval name='max_connections' type='integer'
187			value='100000' override='true'/>
188		<propval name='keep_alive' type='integer'
189			value='0' override='true'/>
190		<propval name='restrict_anonymous' type='boolean'
191			value='false' override='true'/>
192		<propval name='signing_enabled' type='boolean'
193			value='true' override='true'/>
194		<propval name='signing_required' type='boolean'
195			value='true' override='true'/>
196		<propval name='sync_enable' type='boolean'
197			value='false' override='true'/>
198		<propval name='security' type='astring'
199			value='workgroup' override='true'/>
200		<propval name='netbios_enable' type='boolean'
201			value='false' override='true'/>
202		<propval name='netbios_scope' type='astring'
203			value='' override='true'/>
204		<propval name='system_comment' type='astring'
205			value='' override='true'/>
206		<propval name='lmauth_level' type='integer'
207			value='4' override='true'/>
208		<propval name='ads_site' type='astring'
209			value='' override='true'/>
210		<propval name='ddns_enable' type='boolean'
211			value='false' override='true'/>
212		<propval name='kpasswd_server' type='astring'
213			value='' override='true'/>
214		<propval name='kpasswd_domain' type='astring'
215			value='' override='true'/>
216		<propval name='kpasswd_seqnum' type='integer'
217			value='0' override='true'/>
218		<propval name='netlogon_seqnum' type='integer'
219			value='0' override='true'/>
220		<propval name='ipv6_enable' type='boolean'
221			value='false' override='true'/>
222		<propval name='sv_version' type='astring'
223			value='5.0' override='true'/>
224		<propval name='dfs_stdroot_num' type='integer'
225			value='0' override='true'/>
226		<propval name='print_enable' type='boolean'
227			value='false' override='true'/>
228		<propval name='traverse_mounts' type='boolean'
229			value='true' override='true'/>
230		<propval name='max_protocol' type='astring'
231			value='' override='true'/>
232		<propval name='min_protocol' type='astring'
233			value='' override='true'/>
234		<propval name='encrypt' type='astring'
235			value='disabled' override='true'/>
236		<propval name='initial_credits' type='integer'
237			value='20' override='true'/>
238		<propval name='maximum_credits' type='integer'
239			value='1000' override='true'/>
240	</property_group>
241
242	<!-- SMB service-specific shares exec configuration defaults -->
243	<property_group name='exec' type='application'>
244		<stability value='Evolving' />
245		<propval name='map' type='astring'
246			value='' override='true'/>
247		<propval name='unmap' type='astring'
248			value='' override='true'/>
249		<propval name='disposition' type='astring'
250			value='' override='true'/>
251	</property_group>
252
253	<!-- 6. Identify faults to be ignored. -->
254	<!-- 7. Identify service model. Default service model is 'contract' -->
255	<!-- 8. Identify dependents.
256		For Solaris NAS, we may want to have the smbd service start,
257		before it reaches the svc:/milestone/multi-user-server
258		milestone.
259		<dependent
260			name='smb-server_multi-user-server'
261			grouping='optional_all'
262			restart_on='none'>
263			<service_fmri value=
264			    'svc:/milestone/multi-user-server'/>
265		</dependent>
266	-->
267	<!-- 9. Insert service milestones. None. -->
268
269	<stability value='Evolving' />
270
271	<!-- 10. Create Service Template information -->
272	<template>
273		<common_name>
274			<loctext xml:lang='C'> smbd daemon</loctext>
275		</common_name>
276		<documentation>
277			<manpage title='smbd' section='1M'
278				manpath='/usr/share/man' />
279		</documentation>
280	</template>
281
282</service>
283
284</service_bundle>
285