[745] | 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 Supported 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>
|
---|