1 | <?xml version="1.0" encoding="iso-8859-1"?>
|
---|
2 | <!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
|
---|
3 | <chapter id="rights">
|
---|
4 | <chapterinfo>
|
---|
5 | &author.jerry;
|
---|
6 | &author.jht;
|
---|
7 | </chapterinfo>
|
---|
8 |
|
---|
9 | <title>User Rights and Privileges</title>
|
---|
10 |
|
---|
11 | <para>
|
---|
12 | <indexterm><primary>Windows user</primary></indexterm>
|
---|
13 | <indexterm><primary>Windows group</primary></indexterm>
|
---|
14 | <indexterm><primary>machine accounts</primary></indexterm>
|
---|
15 | <indexterm><primary>ADS</primary></indexterm>
|
---|
16 | The administration of Windows user, group, and machine accounts in the Samba
|
---|
17 | domain-controlled network necessitates interfacing between the MS Windows
|
---|
18 | networking environment and the UNIX operating system environment. The right
|
---|
19 | (permission) to add machines to the Windows security domain can be assigned
|
---|
20 | (set) to non-administrative users both in Windows NT4 domains and
|
---|
21 | Active Directory domains.
|
---|
22 | </para>
|
---|
23 |
|
---|
24 | <para>
|
---|
25 | <indexterm><primary>Windows NT4/2kX/XPPro</primary></indexterm>
|
---|
26 | <indexterm><primary>machine account</primary></indexterm>
|
---|
27 | <indexterm><primary>trusted</primary></indexterm>
|
---|
28 | <indexterm><primary>user logons</primary></indexterm>
|
---|
29 | The addition of Windows NT4/2kX/XPPro machines to the domain necessitates the
|
---|
30 | creation of a machine account for each machine added. The machine account is
|
---|
31 | a necessity that is used to validate that the machine can be trusted to permit
|
---|
32 | user logons.
|
---|
33 | </para>
|
---|
34 |
|
---|
35 | <para>
|
---|
36 | <indexterm><primary>user accounts</primary></indexterm>
|
---|
37 | <indexterm><primary>special account</primary></indexterm>
|
---|
38 | <indexterm><primary>account name</primary></indexterm>
|
---|
39 | <indexterm><primary>/bin/false</primary></indexterm>
|
---|
40 | <indexterm><primary>/dev/null</primary></indexterm>
|
---|
41 | <indexterm><primary>man-in-the-middle</primary></indexterm>
|
---|
42 | Machine accounts are analogous to user accounts, and thus in implementing them on a UNIX machine that is
|
---|
43 | hosting Samba (i.e., on which Samba is running), it is necessary to create a special type of user account.
|
---|
44 | Machine accounts differ from normal user accounts in that the account name (login ID) is terminated with a
|
---|
45 | <literal>$</literal> sign. An additional difference is that this type of account should not ever be able to
|
---|
46 | log into the UNIX environment as a system user and therefore is set to have a shell of
|
---|
47 | <command>/bin/false</command> and a home directory of <command>/dev/null.</command> The machine
|
---|
48 | account is used only to authenticate domain member machines during start-up. This security measure
|
---|
49 | is designed to block man-in-the-middle attempts to violate network integrity.
|
---|
50 | </para>
|
---|
51 |
|
---|
52 | <note><para>
|
---|
53 | <indexterm><primary>computer accounts</primary></indexterm>
|
---|
54 | <indexterm><primary>domain member servers</primary></indexterm>
|
---|
55 | <indexterm><primary>domain controller</primary></indexterm>
|
---|
56 | <indexterm><primary>credentials</primary></indexterm>
|
---|
57 | <indexterm><primary>secure authentication</primary></indexterm>
|
---|
58 | Machine (computer) accounts are used in the Windows NT OS family to store security
|
---|
59 | credentials for domain member servers and workstations. When the domain member
|
---|
60 | starts up, it goes through a validation process that includes an exchange of
|
---|
61 | credentials with a domain controller. If the domain member fails to authenticate
|
---|
62 | using the credentials known for it by domain controllers, the machine will be refused
|
---|
63 | all access by domain users. The computer account is essential to the way that MS
|
---|
64 | Windows secures authentication.
|
---|
65 | </para></note>
|
---|
66 |
|
---|
67 | <para>
|
---|
68 | <indexterm><primary>UNIX system accounts</primary></indexterm>
|
---|
69 | <indexterm><primary>system administrator</primary></indexterm>
|
---|
70 | <indexterm><primary>root</primary></indexterm>
|
---|
71 | <indexterm><primary>UID</primary></indexterm>
|
---|
72 | The creation of UNIX system accounts has traditionally been the sole right of
|
---|
73 | the system administrator, better known as the <constant>root</constant> account.
|
---|
74 | It is possible in the UNIX environment to create multiple users who have the
|
---|
75 | same UID. Any UNIX user who has a UID=0 is inherently the same as the
|
---|
76 | <constant>root</constant> account user.
|
---|
77 | </para>
|
---|
78 |
|
---|
79 | <para>
|
---|
80 | <indexterm><primary>system interface scripts</primary></indexterm>
|
---|
81 | <indexterm><primary>CIFS function calls</primary></indexterm>
|
---|
82 | <indexterm><primary>root account</primary></indexterm>
|
---|
83 | <indexterm><primary>UNIX host system</primary></indexterm>
|
---|
84 | All versions of Samba call system interface scripts that permit CIFS function
|
---|
85 | calls that are used to manage users, groups, and machine accounts
|
---|
86 | in the UNIX environment. All versions of Samba up to and including version 3.0.10
|
---|
87 | required the use of a Windows administrator account that unambiguously maps to
|
---|
88 | the UNIX <constant>root</constant> account to permit the execution of these
|
---|
89 | interface scripts. The requirement to do this has understandably met with some
|
---|
90 | disdain and consternation among Samba administrators, particularly where it became
|
---|
91 | necessary to permit people who should not possess <constant>root</constant>-level
|
---|
92 | access to the UNIX host system.
|
---|
93 | </para>
|
---|
94 |
|
---|
95 | <sect1>
|
---|
96 | <title>Rights Management Capabilities</title>
|
---|
97 |
|
---|
98 | <para>
|
---|
99 | <indexterm><primary>Windows privilege model</primary></indexterm>
|
---|
100 | <indexterm><primary>privilege model</primary></indexterm>
|
---|
101 | <indexterm><primary>rights assigned</primary></indexterm>
|
---|
102 | <indexterm><primary>SID</primary></indexterm>
|
---|
103 | Samba 3.0.11 introduced support for the Windows privilege model. This model
|
---|
104 | allows certain rights to be assigned to a user or group SID. In order to enable
|
---|
105 | this feature, <smbconfoption name="enable privileges">yes</smbconfoption>
|
---|
106 | must be defined in the <smbconfsection name="global"/> section of the &smb.conf; file.
|
---|
107 | </para>
|
---|
108 |
|
---|
109 | <para>
|
---|
110 | <indexterm><primary>rights</primary></indexterm>
|
---|
111 | <indexterm><primary>privileges</primary></indexterm>
|
---|
112 | <indexterm><primary>manage privileges</primary></indexterm>
|
---|
113 | Currently, the rights supported in Samba-3 are listed in <link linkend="rp-privs"/>.
|
---|
114 | The remainder of this chapter explains how to manage and use these privileges on Samba servers.
|
---|
115 | </para>
|
---|
116 |
|
---|
117 | <indexterm><primary>SeMachineAccountPrivilege</primary></indexterm>
|
---|
118 | <indexterm><primary>SePrintOperatorPrivilege</primary></indexterm>
|
---|
119 | <indexterm><primary>SeAddUsersPrivilege</primary></indexterm>
|
---|
120 | <indexterm><primary>SeRemoteShutdownPrivilege</primary></indexterm>
|
---|
121 | <indexterm><primary>SeDiskOperatorPrivilege</primary></indexterm>
|
---|
122 | <indexterm><primary>SeTakeOwnershipPrivilege</primary></indexterm>
|
---|
123 | <table id="rp-privs">
|
---|
124 | <title>Current Privilege Capabilities</title>
|
---|
125 | <tgroup cols="2">
|
---|
126 | <colspec align="right"/>
|
---|
127 | <colspec align="left"/>
|
---|
128 | <thead>
|
---|
129 | <row>
|
---|
130 | <entry align="left">Privilege</entry>
|
---|
131 | <entry align="left">Description</entry>
|
---|
132 | </row>
|
---|
133 | </thead>
|
---|
134 | <tbody>
|
---|
135 | <row>
|
---|
136 | <entry><para>SeMachineAccountPrivilege</para></entry>
|
---|
137 | <entry><para>Add machines to domain</para></entry>
|
---|
138 | </row>
|
---|
139 | <row>
|
---|
140 | <entry><para>SePrintOperatorPrivilege</para></entry>
|
---|
141 | <entry><para>Manage printers</para></entry>
|
---|
142 | </row>
|
---|
143 | <row>
|
---|
144 | <entry><para>SeAddUsersPrivilege</para></entry>
|
---|
145 | <entry><para>Add users and groups to the domain</para></entry>
|
---|
146 | </row>
|
---|
147 | <row>
|
---|
148 | <entry><para>SeRemoteShutdownPrivilege</para></entry>
|
---|
149 | <entry><para>Force shutdown from a remote system</para></entry>
|
---|
150 | </row>
|
---|
151 | <row>
|
---|
152 | <entry><para>SeDiskOperatorPrivilege</para></entry>
|
---|
153 | <entry><para>Manage disk share</para></entry>
|
---|
154 | </row>
|
---|
155 | <!-- These are not used at this time - so void them from the docs.
|
---|
156 | <row>
|
---|
157 | <entry><para>SeBackupPrivilege</para></entry>
|
---|
158 | <entry><para>Back up files and directories</para></entry>
|
---|
159 | </row>
|
---|
160 | <row>
|
---|
161 | <entry><para>SeRestorePrivilege</para></entry>
|
---|
162 | <entry><para>Restore files and directories</para></entry>
|
---|
163 | </row>
|
---|
164 | **** End of commented out section **** -->
|
---|
165 | <row>
|
---|
166 | <entry><para>SeTakeOwnershipPrivilege</para></entry>
|
---|
167 | <entry><para>Take ownership of files or other objects</para></entry>
|
---|
168 | </row>
|
---|
169 | </tbody>
|
---|
170 | </tgroup>
|
---|
171 | </table>
|
---|
172 |
|
---|
173 | <sect2>
|
---|
174 | <title>Using the <quote>net rpc rights</quote> Utility</title>
|
---|
175 |
|
---|
176 | <para>
|
---|
177 | <indexterm><primary>managing rights</primary></indexterm>
|
---|
178 | <indexterm><primary>rights assigned</primary></indexterm>
|
---|
179 | <indexterm><primary>NT4 User Manager for Domains</primary></indexterm>
|
---|
180 | <indexterm><primary>command-line utility</primary></indexterm>
|
---|
181 | <indexterm><primary>administrative actions</primary></indexterm>
|
---|
182 | There are two primary means of managing the rights assigned to users and groups
|
---|
183 | on a Samba server. The <command>NT4 User Manager for Domains</command> may be
|
---|
184 | used from any Windows NT4, 2000, or XP Professional domain member client to
|
---|
185 | connect to a Samba domain controller and view/modify the rights assignments.
|
---|
186 | This application, however, appears to have bugs when run on a client running
|
---|
187 | Windows 2000 or later; therefore, Samba provides a command-line utility for
|
---|
188 | performing the necessary administrative actions.
|
---|
189 | </para>
|
---|
190 |
|
---|
191 | <para>
|
---|
192 | The <command>net rpc rights</command> utility in Samba 3.0.11 has three new subcommands:
|
---|
193 | </para>
|
---|
194 |
|
---|
195 | <variablelist>
|
---|
196 | <varlistentry><term>list [name|accounts]</term>
|
---|
197 | <listitem><para>
|
---|
198 | <indexterm><primary>net</primary><secondary>rpc</secondary><tertiary>list</tertiary></indexterm>
|
---|
199 | <indexterm><primary>available rights</primary></indexterm>
|
---|
200 | <indexterm><primary>privileges assigned</primary></indexterm>
|
---|
201 | <indexterm><primary>privileged accounts</primary></indexterm>
|
---|
202 | When called with no arguments, <command>net rpc list</command>
|
---|
203 | simply lists the available rights on the server. When passed
|
---|
204 | a specific user or group name, the tool lists the privileges
|
---|
205 | currently assigned to the specified account. When invoked using
|
---|
206 | the special string <constant>accounts</constant>,
|
---|
207 | <command>net rpc rights list</command> returns a list of all
|
---|
208 | privileged accounts on the server and the assigned rights.
|
---|
209 | </para></listitem>
|
---|
210 | </varlistentry>
|
---|
211 |
|
---|
212 | <varlistentry><term>grant <user> <right [right ...]></term>
|
---|
213 | <listitem><para>
|
---|
214 | <indexterm><primary>assign rights</primary></indexterm>
|
---|
215 | <indexterm><primary>grant rights</primary></indexterm>
|
---|
216 | <indexterm><primary>add client machines</primary></indexterm>
|
---|
217 | <indexterm><primary>user or group</primary></indexterm>
|
---|
218 | When called with no arguments, this function is used to assign
|
---|
219 | a list of rights to a specified user or group. For example,
|
---|
220 | to grant the members of the Domain Admins group on a Samba domain controller,
|
---|
221 | the capability to add client machines to the domain, one would run:
|
---|
222 | <screen>
|
---|
223 | &rootprompt; net -S server -U domadmin rpc rights grant \
|
---|
224 | 'DOMAIN\Domain Admins' SeMachineAccountPrivilege
|
---|
225 | </screen>
|
---|
226 | The following syntax has the same result:
|
---|
227 | <indexterm><primary>net</primary><secondary>rpc</secondary><tertiary>rights grant</tertiary></indexterm>
|
---|
228 | <screen>
|
---|
229 | &rootprompt; net rpc rights grant 'DOMAIN\Domain Admins' \
|
---|
230 | SeMachineAccountPrivilege -S server -U domadmin
|
---|
231 | </screen>
|
---|
232 | More than one privilege can be assigned by specifying a
|
---|
233 | list of rights separated by spaces. The parameter 'Domain\Domain Admins'
|
---|
234 | must be quoted with single ticks or using double-quotes to prevent
|
---|
235 | the backslash and the space from being interpreted by the system shell.
|
---|
236 | </para></listitem>
|
---|
237 | </varlistentry>
|
---|
238 |
|
---|
239 | <varlistentry><term>revoke <user> <right [right ...]></term>
|
---|
240 | <listitem><para>
|
---|
241 | This command is similar in format to <command>net rpc rights grant</command>. Its
|
---|
242 | effect is to remove an assigned right (or list of rights) from a user or group.
|
---|
243 | </para></listitem>
|
---|
244 | </varlistentry>
|
---|
245 |
|
---|
246 | </variablelist>
|
---|
247 |
|
---|
248 | <note><para>
|
---|
249 | <indexterm><primary>member</primary></indexterm>
|
---|
250 | <indexterm><primary>Domain Admins</primary></indexterm>
|
---|
251 | <indexterm><primary>revoke privileges</primary></indexterm>
|
---|
252 | You must be connected as a member of the Domain Admins group to be able to grant or revoke privileges assigned
|
---|
253 | to an account. This capability is inherent to the Domain Admins group and is not configurable. There are no
|
---|
254 | default rights and privileges, except the ability for a member of the Domain Admins group to assign them.
|
---|
255 | This means that all administrative rights and privileges (other than the ability to assign them) must be
|
---|
256 | explicitly assigned, even for the Domain Admins group.
|
---|
257 | </para></note>
|
---|
258 |
|
---|
259 | <para>
|
---|
260 | <indexterm><primary>performed as root</primary></indexterm>
|
---|
261 | <indexterm><primary>necessary rights</primary></indexterm>
|
---|
262 | <indexterm><primary>add machine script</primary></indexterm>
|
---|
263 | <indexterm><primary></primary></indexterm>
|
---|
264 | By default, no privileges are initially assigned to any account because certain actions will be performed as
|
---|
265 | root once smbd determines that a user has the necessary rights. For example, when joining a client to a
|
---|
266 | Windows domain, <parameter>add machine script</parameter> must be executed with superuser rights in most
|
---|
267 | cases. For this reason, you should be very careful about handing out privileges to accounts.
|
---|
268 | </para>
|
---|
269 |
|
---|
270 | <para>
|
---|
271 | <indexterm><primary>Access</primary></indexterm>
|
---|
272 | <indexterm><primary>root user</primary></indexterm>
|
---|
273 | <indexterm><primary>bypasses privilege</primary></indexterm>
|
---|
274 | Access as the root user (UID=0) bypasses all privilege checks.
|
---|
275 | </para>
|
---|
276 |
|
---|
277 | </sect2>
|
---|
278 |
|
---|
279 | <sect2>
|
---|
280 | <title>Description of Privileges</title>
|
---|
281 |
|
---|
282 | <para>
|
---|
283 | <indexterm><primary>privileges</primary></indexterm>
|
---|
284 | <indexterm><primary>additional privileges</primary></indexterm>
|
---|
285 | <indexterm><primary>house-keeping</primary></indexterm>
|
---|
286 | The privileges that have been implemented in Samba-3.0.11 are shown below. It is possible, and likely, that
|
---|
287 | additional privileges may be implemented in later releases of Samba. It is also likely that any privileges
|
---|
288 | currently implemented but not used may be removed from future releases as a housekeeping matter, so it is
|
---|
289 | important that the successful as well as unsuccessful use of these facilities should be reported on the Samba
|
---|
290 | mailing lists.
|
---|
291 | </para>
|
---|
292 |
|
---|
293 | <variablelist>
|
---|
294 | <varlistentry><term>SeAddUsersPrivilege</term>
|
---|
295 | <listitem><para>
|
---|
296 | <indexterm><primary>SeAddUsersPrivilege</primary></indexterm>
|
---|
297 | <indexterm><primary>smbd</primary></indexterm>
|
---|
298 | <indexterm><primary>net rpc user add</primary></indexterm>
|
---|
299 | This right determines whether or not smbd will allow the
|
---|
300 | user to create new user or group accounts via such tools
|
---|
301 | as <command>net rpc user add</command> or
|
---|
302 | <command>NT4 User Manager for Domains.</command>
|
---|
303 | </para></listitem>
|
---|
304 | </varlistentry>
|
---|
305 |
|
---|
306 | <varlistentry><term>SeDiskOperatorPrivilege</term>
|
---|
307 | <listitem><para>
|
---|
308 | <indexterm><primary>SeDiskOperatorPrivilege</primary></indexterm>
|
---|
309 | <indexterm><primary>add/delete/change share</primary></indexterm>
|
---|
310 | <indexterm><primary>ACL</primary></indexterm>
|
---|
311 | Accounts that possess this right will be able to execute
|
---|
312 | scripts defined by the <command>add/delete/change</command>
|
---|
313 | share command in &smb.conf; file as root. Such users will
|
---|
314 | also be able to modify the ACL associated with file shares
|
---|
315 | on the Samba server.
|
---|
316 | </para></listitem>
|
---|
317 | </varlistentry>
|
---|
318 |
|
---|
319 | <varlistentry><term>SeMachineAccountPrivilege</term>
|
---|
320 | <listitem><para>
|
---|
321 | <indexterm><primary>SeMachineAccountPrivilege</primary></indexterm>
|
---|
322 | <indexterm><primary>right to join domain</primary></indexterm>
|
---|
323 | <indexterm><primary>join client</primary></indexterm>
|
---|
324 | This right controls whether or not the user can join client
|
---|
325 | machines to a Samba-controlled domain.
|
---|
326 | </para></listitem>
|
---|
327 | </varlistentry>
|
---|
328 |
|
---|
329 | <varlistentry><term>SePrintOperatorPrivilege</term>
|
---|
330 | <listitem><para>
|
---|
331 | <indexterm><primary>SePrintOperatorPrivilege</primary></indexterm>
|
---|
332 | <indexterm><primary>privilege</primary></indexterm>
|
---|
333 | <indexterm><primary>global right</primary></indexterm>
|
---|
334 | <indexterm><primary>administrative rights</primary></indexterm>
|
---|
335 | <indexterm><primary>printers admin</primary></indexterm>
|
---|
336 | This privilege operates identically to the <smbconfoption name="printer admin"/>
|
---|
337 | option in the &smb.conf; file (see section 5 man page for &smb.conf;)
|
---|
338 | except that it is a global right (not on a per-printer basis).
|
---|
339 | Eventually the smb.conf option will be deprecated and administrative
|
---|
340 | rights to printers will be controlled exclusively by this right and
|
---|
341 | the security descriptor associated with the printer object in the
|
---|
342 | <filename>ntprinters.tdb</filename> file.
|
---|
343 | </para></listitem>
|
---|
344 | </varlistentry>
|
---|
345 |
|
---|
346 | <varlistentry><term>SeRemoteShutdownPrivilege</term>
|
---|
347 | <listitem><para>
|
---|
348 | <indexterm><primary>SeRemoteShutdownPrivilege</primary></indexterm>
|
---|
349 | <indexterm><primary>rebooting server</primary></indexterm>
|
---|
350 | <indexterm><primary>aborting shutdown</primary></indexterm>
|
---|
351 | Samba provides two hooks for shutting down or rebooting
|
---|
352 | the server and for aborting a previously issued shutdown
|
---|
353 | command. Since this is an operation normally limited by
|
---|
354 | the operating system to the root user, an account must possess this
|
---|
355 | right to be able to execute either of these hooks.
|
---|
356 | </para></listitem>
|
---|
357 | </varlistentry>
|
---|
358 |
|
---|
359 | <varlistentry><term>SeTakeOwnershipPrivilege</term>
|
---|
360 | <listitem><para>
|
---|
361 | <indexterm><primary>SeTakeOwnershipPrivilege</primary></indexterm>
|
---|
362 | <indexterm><primary>take ownership</primary></indexterm>
|
---|
363 | This right permits users to take ownership of files and directories.
|
---|
364 | </para></listitem>
|
---|
365 | </varlistentry>
|
---|
366 |
|
---|
367 | </variablelist>
|
---|
368 |
|
---|
369 | </sect2>
|
---|
370 |
|
---|
371 | <sect2>
|
---|
372 | <title>Privileges Suppored by Windows 2000 Domain Controllers</title>
|
---|
373 |
|
---|
374 | <para>
|
---|
375 | For reference purposes, a Windows NT4 Primary Domain Controller reports support for the following
|
---|
376 | privileges:
|
---|
377 | <indexterm><primary>SeCreateTokenPrivilege</primary></indexterm>
|
---|
378 | <indexterm><primary>SeAssignPrimaryTokenPrivilege</primary></indexterm>
|
---|
379 | <indexterm><primary>SeLockMemoryPrivilege</primary></indexterm>
|
---|
380 | <indexterm><primary>SeIncreaseQuotaPrivilege</primary></indexterm>
|
---|
381 | <indexterm><primary>SeMachineAccountPrivilege</primary></indexterm>
|
---|
382 | <indexterm><primary>SeTcbPrivilege</primary></indexterm>
|
---|
383 | <indexterm><primary>SeSecurityPrivilege</primary></indexterm>
|
---|
384 | <indexterm><primary>SeTakeOwnershipPrivilege</primary></indexterm>
|
---|
385 | <indexterm><primary>SeLoadDriverPrivilege</primary></indexterm>
|
---|
386 | <indexterm><primary>SeSystemProfilePrivilege</primary></indexterm>
|
---|
387 | <indexterm><primary>SeSystemtimePrivilege</primary></indexterm>
|
---|
388 | <indexterm><primary>SeProfileSingleProcessPrivilege</primary></indexterm>
|
---|
389 | <indexterm><primary>SeIncreaseBasePriorityPrivilege</primary></indexterm>
|
---|
390 | <indexterm><primary>SeCreatePagefilePrivilege</primary></indexterm>
|
---|
391 | <indexterm><primary>SeCreatePermanentPrivilege</primary></indexterm>
|
---|
392 | <indexterm><primary>SeBackupPrivilege</primary></indexterm>
|
---|
393 | <indexterm><primary>SeRestorePrivilege</primary></indexterm>
|
---|
394 | <indexterm><primary>SeShutdownPrivilege</primary></indexterm>
|
---|
395 | <indexterm><primary>SeDebugPrivilege</primary></indexterm>
|
---|
396 | <indexterm><primary>SeAuditPrivilege</primary></indexterm>
|
---|
397 | <indexterm><primary>SeSystemEnvironmentPrivilege</primary></indexterm>
|
---|
398 | <indexterm><primary>SeChangeNotifyPrivilege</primary></indexterm>
|
---|
399 | <indexterm><primary>SeRemoteShutdownPrivilege</primary></indexterm>
|
---|
400 | <screen>
|
---|
401 | SeCreateTokenPrivilege Create a token object
|
---|
402 | SeAssignPrimaryTokenPrivilege Replace a process level token
|
---|
403 | SeLockMemoryPrivilege Lock pages in memory
|
---|
404 | SeIncreaseQuotaPrivilege Increase quotas
|
---|
405 | SeMachineAccountPrivilege Add workstations to domain
|
---|
406 | SeTcbPrivilege Act as part of the operating system
|
---|
407 | SeSecurityPrivilege Manage auditing and security log
|
---|
408 | SeTakeOwnershipPrivilege Take ownership of files or other objects
|
---|
409 | SeLoadDriverPrivilege Load and unload device drivers
|
---|
410 | SeSystemProfilePrivilege Profile system performance
|
---|
411 | SeSystemtimePrivilege Change the system time
|
---|
412 | SeProfileSingleProcessPrivilege Profile single process
|
---|
413 | SeIncreaseBasePriorityPrivilege Increase scheduling priority
|
---|
414 | SeCreatePagefilePrivilege Create a pagefile
|
---|
415 | SeCreatePermanentPrivilege Create permanent shared objects
|
---|
416 | SeBackupPrivilege Back up files and directories
|
---|
417 | SeRestorePrivilege Restore files and directories
|
---|
418 | SeShutdownPrivilege Shut down the system
|
---|
419 | SeDebugPrivilege Debug programs
|
---|
420 | SeAuditPrivilege Generate security audits
|
---|
421 | SeSystemEnvironmentPrivilege Modify firmware environment values
|
---|
422 | SeChangeNotifyPrivilege Bypass traverse checking
|
---|
423 | SeRemoteShutdownPrivilege Force shutdown from a remote system
|
---|
424 | </screen>
|
---|
425 | And Windows 200x/XP Domain Controllers and workstations reports to support the following privileges:
|
---|
426 | <indexterm><primary>SeCreateTokenPrivilege</primary></indexterm>
|
---|
427 | <indexterm><primary>SeAssignPrimaryTokenPrivilege</primary></indexterm>
|
---|
428 | <indexterm><primary>SeLockMemoryPrivilege</primary></indexterm>
|
---|
429 | <indexterm><primary>SeIncreaseQuotaPrivilege</primary></indexterm>
|
---|
430 | <indexterm><primary>SeMachineAccountPrivilege</primary></indexterm>
|
---|
431 | <indexterm><primary>SeTcbPrivilege</primary></indexterm>
|
---|
432 | <indexterm><primary>SeSecurityPrivilege</primary></indexterm>
|
---|
433 | <indexterm><primary>SeTakeOwnershipPrivilege</primary></indexterm>
|
---|
434 | <indexterm><primary>SeLoadDriverPrivilege</primary></indexterm>
|
---|
435 | <indexterm><primary>SeSystemProfilePrivilege</primary></indexterm>
|
---|
436 | <indexterm><primary>SeSystemtimePrivilege</primary></indexterm>
|
---|
437 | <indexterm><primary>SeProfileSingleProcessPrivilege</primary></indexterm>
|
---|
438 | <indexterm><primary>SeIncreaseBasePriorityPrivilege</primary></indexterm>
|
---|
439 | <indexterm><primary>SeCreatePagefilePrivilege</primary></indexterm>
|
---|
440 | <indexterm><primary>SeCreatePermanentPrivilege</primary></indexterm>
|
---|
441 | <indexterm><primary>SeBackupPrivilege</primary></indexterm>
|
---|
442 | <indexterm><primary>SeRestorePrivilege</primary></indexterm>
|
---|
443 | <indexterm><primary>SeShutdownPrivilege</primary></indexterm>
|
---|
444 | <indexterm><primary>SeDebugPrivilege</primary></indexterm>
|
---|
445 | <indexterm><primary>SeAuditPrivilege</primary></indexterm>
|
---|
446 | <indexterm><primary>SeSystemEnvironmentPrivilege</primary></indexterm>
|
---|
447 | <indexterm><primary>SeChangeNotifyPrivilege</primary></indexterm>
|
---|
448 | <indexterm><primary>SeRemoteShutdownPrivilege</primary></indexterm>
|
---|
449 | <indexterm><primary>SeUndockPrivilege</primary></indexterm>
|
---|
450 | <indexterm><primary>SeSyncAgentPrivilege</primary></indexterm>
|
---|
451 | <indexterm><primary>SeEnableDelegationPrivilege</primary></indexterm>
|
---|
452 | <indexterm><primary>SeManageVolumePrivilege</primary></indexterm>
|
---|
453 | <indexterm><primary>SeImpersonatePrivilege</primary></indexterm>
|
---|
454 | <indexterm><primary>SeCreateGlobalPrivilege</primary></indexterm>
|
---|
455 | <screen>
|
---|
456 | SeCreateTokenPrivilege Create a token object
|
---|
457 | SeAssignPrimaryTokenPrivilege Replace a process level token
|
---|
458 | SeLockMemoryPrivilege Lock pages in memory
|
---|
459 | SeIncreaseQuotaPrivilege Increase quotas
|
---|
460 | SeMachineAccountPrivilege Add workstations to domain
|
---|
461 | SeTcbPrivilege Act as part of the operating system
|
---|
462 | SeSecurityPrivilege Manage auditing and security log
|
---|
463 | SeTakeOwnershipPrivilege Take ownership of files or other objects
|
---|
464 | SeLoadDriverPrivilege Load and unload device drivers
|
---|
465 | SeSystemProfilePrivilege Profile system performance
|
---|
466 | SeSystemtimePrivilege Change the system time
|
---|
467 | SeProfileSingleProcessPrivilege Profile single process
|
---|
468 | SeIncreaseBasePriorityPrivilege Increase scheduling priority
|
---|
469 | SeCreatePagefilePrivilege Create a pagefile
|
---|
470 | SeCreatePermanentPrivilege Create permanent shared objects
|
---|
471 | SeBackupPrivilege Back up files and directories
|
---|
472 | SeRestorePrivilege Restore files and directories
|
---|
473 | SeShutdownPrivilege Shut down the system
|
---|
474 | SeDebugPrivilege Debug programs
|
---|
475 | SeAuditPrivilege Generate security audits
|
---|
476 | SeSystemEnvironmentPrivilege Modify firmware environment values
|
---|
477 | SeChangeNotifyPrivilege Bypass traverse checking
|
---|
478 | SeRemoteShutdownPrivilege Force shutdown from a remote system
|
---|
479 | SeUndockPrivilege Remove computer from docking station
|
---|
480 | SeSyncAgentPrivilege Synchronize directory service data
|
---|
481 | SeEnableDelegationPrivilege Enable computer and user accounts to
|
---|
482 | be trusted for delegation
|
---|
483 | SeManageVolumePrivilege Perform volume maintenance tasks
|
---|
484 | SeImpersonatePrivilege Impersonate a client after authentication
|
---|
485 | SeCreateGlobalPrivilege Create global objects
|
---|
486 | </screen>
|
---|
487 | <indexterm><primary>equivalence</primary></indexterm>
|
---|
488 | The Samba Team is implementing only those privileges that are logical and useful in the UNIX/Linux
|
---|
489 | environment. Many of the Windows 200X/XP privileges have no direct equivalence in UNIX.
|
---|
490 | </para>
|
---|
491 |
|
---|
492 | </sect2>
|
---|
493 |
|
---|
494 | </sect1>
|
---|
495 |
|
---|
496 | <sect1>
|
---|
497 | <title>The Administrator Domain SID</title>
|
---|
498 |
|
---|
499 | <para>
|
---|
500 | <indexterm><primary>domain Administrator</primary></indexterm>
|
---|
501 | <indexterm><primary>User Rights and Privileges</primary></indexterm>
|
---|
502 | <indexterm><primary>passdb backend</primary></indexterm>
|
---|
503 | <indexterm><primary>SID</primary></indexterm>
|
---|
504 | <indexterm><primary>net getlocalsid</primary></indexterm>
|
---|
505 | Please note that every Windows NT4 and later server requires a domain Administrator account. Samba versions
|
---|
506 | commencing with 3.0.11 permit Administrative duties to be performed via assigned rights and privileges
|
---|
507 | (see <link linkend="rights">User Rights and Privileges</link>). An account in the server's passdb backend can
|
---|
508 | be set to the well-known RID of the default administrator account. To obtain the domain SID on a Samba domain
|
---|
509 | controller, run the following command:
|
---|
510 | <screen>
|
---|
511 | &rootprompt; net getlocalsid
|
---|
512 | SID for domain FOO is: S-1-5-21-4294955119-3368514841-2087710299
|
---|
513 | </screen>
|
---|
514 | <indexterm><primary>RID</primary></indexterm>
|
---|
515 | You may assign the domain administrator RID to an account using the <command>pdbedit</command>
|
---|
516 | command as shown here:
|
---|
517 | <indexterm><primary>pdbedit</primary></indexterm>
|
---|
518 | <screen>
|
---|
519 | &rootprompt; pdbedit -U S-1-5-21-4294955119-3368514841-2087710299-500 -u root -r
|
---|
520 | </screen>
|
---|
521 | </para>
|
---|
522 |
|
---|
523 | <note><para>
|
---|
524 | <indexterm><primary>RID 500</primary></indexterm>
|
---|
525 | <indexterm><primary>well known RID</primary></indexterm>
|
---|
526 | <indexterm><primary>rights and privileges</primary></indexterm>
|
---|
527 | <indexterm><primary>root account</primary></indexterm>
|
---|
528 | The RID 500 is the well known standard value of the default Administrator account. It is the RID
|
---|
529 | that confers the rights and privileges that the Administrator account has on a Windows machine
|
---|
530 | or domain. Under UNIX/Linux the equivalent is UID=0 (the root account).
|
---|
531 | </para></note>
|
---|
532 |
|
---|
533 | <para>
|
---|
534 | <indexterm><primary>without Administrator account</primary></indexterm>
|
---|
535 | <indexterm><primary>equivalent rights and privileges</primary></indexterm>
|
---|
536 | <indexterm><primary>Windows group account</primary></indexterm>
|
---|
537 | <indexterm><primary>3.0.11</primary></indexterm>
|
---|
538 | Releases of Samba version 3.0.11 and later make it possible to operate without an Administrator account
|
---|
539 | provided equivalent rights and privileges have been established for a Windows user or a Windows
|
---|
540 | group account.
|
---|
541 | </para>
|
---|
542 |
|
---|
543 | </sect1>
|
---|
544 |
|
---|
545 | <sect1>
|
---|
546 | <title>Common Errors</title>
|
---|
547 |
|
---|
548 | <sect2>
|
---|
549 | <title>What Rights and Privileges Will Permit Windows Client Administration?</title>
|
---|
550 |
|
---|
551 | <para>
|
---|
552 | <indexterm><primary>domain global</primary></indexterm>
|
---|
553 | <indexterm><primary>local group</primary></indexterm>
|
---|
554 | <indexterm><primary>administrative rights</primary></indexterm>
|
---|
555 | <indexterm><primary>Windows client</primary></indexterm>
|
---|
556 | When a Windows NT4 (or later) client joins a domain, the domain global <literal>Domain Admins</literal> group
|
---|
557 | is added to the membership of the local <literal>Administrators</literal> group on the client. Any user who is
|
---|
558 | a member of the domain global <literal>Domain Admins</literal> group will have administrative rights on the
|
---|
559 | Windows client.
|
---|
560 | </para>
|
---|
561 |
|
---|
562 | <para>
|
---|
563 | <indexterm><primary>desirable solution</primary></indexterm>
|
---|
564 | <indexterm><primary>administrative rights and privileges</primary></indexterm>
|
---|
565 | <indexterm><primary>Power Users</primary></indexterm>
|
---|
566 | <indexterm><primary>domain global user</primary></indexterm>
|
---|
567 | <indexterm><primary>domain global group</primary></indexterm>
|
---|
568 | This is often not the most desirable solution because it means that the user will have administrative
|
---|
569 | rights and privileges on domain servers also. The <literal>Power Users</literal> group on Windows client
|
---|
570 | workstations permits local administration of the workstation alone. Any domain global user or domain global
|
---|
571 | group can be added to the membership of the local workstation group <literal>Power Users</literal>.
|
---|
572 | </para>
|
---|
573 |
|
---|
574 | <para>
|
---|
575 | <indexterm><primary>Nested Group Support</primary></indexterm>
|
---|
576 | <indexterm><primary>add domain users and groups to a local group</primary></indexterm>
|
---|
577 | <indexterm><primary>net</primary></indexterm>
|
---|
578 | <indexterm><primary>Windows workstation.</primary></indexterm>
|
---|
579 | See <link linkend="nestedgrpmgmgt">Nested Group Support</link> for an example of how to add domain users
|
---|
580 | and groups to a local group that is on a Windows workstation. The use of the <command>net</command>
|
---|
581 | command permits this to be done from the Samba server.
|
---|
582 | </para>
|
---|
583 |
|
---|
584 | <para>
|
---|
585 | <indexterm><primary>cmd</primary></indexterm>
|
---|
586 | <indexterm><primary>cmd shell</primary></indexterm>
|
---|
587 | <indexterm><primary>net</primary><secondary>localgroup</secondary></indexterm>
|
---|
588 | Another way this can be done is to log onto the Windows workstation as the user
|
---|
589 | <literal>Administrator</literal>, then open a <command>cmd</command> shell, then execute:
|
---|
590 | <screen>
|
---|
591 | &dosprompt; net localgroup administrators /add <userinput>domain_name\entity</userinput>
|
---|
592 | </screen>
|
---|
593 | where <literal>entity</literal> is either a domain user or a domain group account name.
|
---|
594 | </para>
|
---|
595 |
|
---|
596 | </sect2>
|
---|
597 |
|
---|
598 | </sect1>
|
---|
599 |
|
---|
600 | </chapter>
|
---|