mirror of
https://github.com/samba-team/samba.git
synced 2025-01-14 19:24:43 +03:00
986 lines
22 KiB
HTML
986 lines
22 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Storing Samba's User/Machine Account information in an LDAP Directory</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="SAMBA Project Documentation"
|
|
HREF="samba-howto-collection.html"><LINK
|
|
REL="UP"
|
|
TITLE="Optional configuration"
|
|
HREF="optional.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Stackable VFS modules"
|
|
HREF="vfs.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="HOWTO Access Samba source code via CVS"
|
|
HREF="cvs-access.html"></HEAD
|
|
><BODY
|
|
CLASS="CHAPTER"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>SAMBA Project Documentation</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="vfs.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="cvs-access.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="CHAPTER"
|
|
><H1
|
|
><A
|
|
NAME="SAMBA-LDAP-HOWTO">Chapter 19. Storing Samba's User/Machine Account information in an LDAP Directory</H1
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2737">19.1. Purpose</H1
|
|
><P
|
|
>This document describes how to use an LDAP directory for storing Samba user
|
|
account information traditionally stored in the smbpasswd(5) file. It is
|
|
assumed that the reader already has a basic understanding of LDAP concepts
|
|
and has a working directory server already installed. For more information
|
|
on LDAP architectures and Directories, please refer to the following sites.</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>OpenLDAP - <A
|
|
HREF="http://www.openldap.org/"
|
|
TARGET="_top"
|
|
>http://www.openldap.org/</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>iPlanet Directory Server - <A
|
|
HREF="http://iplanet.netscape.com/directory"
|
|
TARGET="_top"
|
|
>http://iplanet.netscape.com/directory</A
|
|
></P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>Note that <A
|
|
HREF="http://www.ora.com/"
|
|
TARGET="_top"
|
|
>O'Reilly Publishing</A
|
|
> is working on
|
|
a guide to LDAP for System Administrators which has a planned release date of
|
|
early summer, 2002.</P
|
|
><P
|
|
>Two additional Samba resources which may prove to be helpful are</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>The <A
|
|
HREF="http://www.unav.es/cti/ldap-smb/ldap-smb-3-howto.html"
|
|
TARGET="_top"
|
|
>Samba-PDC-LDAP-HOWTO</A
|
|
>
|
|
maintained by Ignacio Coupeau.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>The NT migration scripts from <A
|
|
HREF="http://samba.idealx.org/"
|
|
TARGET="_top"
|
|
>IDEALX</A
|
|
> that are
|
|
geared to manage users and group in such a Samba-LDAP Domain Controller configuration.
|
|
</P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2757">19.2. Introduction</H1
|
|
><P
|
|
>Traditionally, when configuring <A
|
|
HREF="smb.conf.5.html#ENCRYPTPASSWORDS"
|
|
TARGET="_top"
|
|
>"encrypt
|
|
passwords = yes"</A
|
|
> in Samba's <TT
|
|
CLASS="FILENAME"
|
|
>smb.conf</TT
|
|
> file, user account
|
|
information such as username, LM/NT password hashes, password change times, and account
|
|
flags have been stored in the <TT
|
|
CLASS="FILENAME"
|
|
>smbpasswd(5)</TT
|
|
> file. There are several
|
|
disadvantages to this approach for sites with very large numbers of users (counted
|
|
in the thousands).</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>The first is that all lookups must be performed sequentially. Given that
|
|
there are approximately two lookups per domain logon (one for a normal
|
|
session connection such as when mapping a network drive or printer), this
|
|
is a performance bottleneck for lareg sites. What is needed is an indexed approach
|
|
such as is used in databases.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>The second problem is that administrators who desired to replicate a
|
|
smbpasswd file to more than one Samba server were left to use external
|
|
tools such as <B
|
|
CLASS="COMMAND"
|
|
>rsync(1)</B
|
|
> and <B
|
|
CLASS="COMMAND"
|
|
>ssh(1)</B
|
|
>
|
|
and wrote custom, in-house scripts.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>And finally, the amount of information which is stored in an
|
|
smbpasswd entry leaves no room for additional attributes such as
|
|
a home directory, password expiration time, or even a Relative
|
|
Identified (RID).</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>As a result of these defeciencies, a more robust means of storing user attributes
|
|
used by smbd was developed. The API which defines access to user accounts
|
|
is commonly referred to as the samdb interface (previously this was called the passdb
|
|
API, and is still so named in the CVS trees). In Samba 2.2.3, enabling support
|
|
for a samdb backend (e.g. <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>--with-ldapsam</I
|
|
></TT
|
|
> or
|
|
<TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>--with-tdbsam</I
|
|
></TT
|
|
>) requires compile time support.</P
|
|
><P
|
|
>When compiling Samba to include the <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>--with-ldapsam</I
|
|
></TT
|
|
> autoconf
|
|
option, smbd (and associated tools) will store and lookup user accounts in
|
|
an LDAP directory. In reality, this is very easy to understand. If you are
|
|
comfortable with using an smbpasswd file, simply replace "smbpasswd" with
|
|
"LDAP directory" in all the documentation.</P
|
|
><P
|
|
>There are a few points to stress about what the <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>--with-ldapsam</I
|
|
></TT
|
|
>
|
|
does not provide. The LDAP support referred to in the this documentation does not
|
|
include:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>A means of retrieving user account information from
|
|
an Windows 2000 Active Directory server.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>A means of replacing /etc/passwd.</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>The second item can be accomplished by using LDAP NSS and PAM modules. LGPL
|
|
versions of these libraries can be obtained from PADL Software
|
|
(<A
|
|
HREF="http://www.padl.com/"
|
|
TARGET="_top"
|
|
>http://www.padl.com/</A
|
|
>). However,
|
|
the details of configuring these packages are beyond the scope of this document.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2786">19.3. Supported LDAP Servers</H1
|
|
><P
|
|
>The LDAP samdb code in 2.2.3 has been developed and tested using the OpenLDAP
|
|
2.0 server and client libraries. The same code should be able to work with
|
|
Netscape's Directory Server and client SDK. However, due to lack of testing
|
|
so far, there are bound to be compile errors and bugs. These should not be
|
|
hard to fix. If you are so inclined, please be sure to forward all patches to
|
|
<A
|
|
HREF="samba-patches@samba.org"
|
|
TARGET="_top"
|
|
>samba-patches@samba.org</A
|
|
> and
|
|
<A
|
|
HREF="jerry@samba.org"
|
|
TARGET="_top"
|
|
>jerry@samba.org</A
|
|
>.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2791">19.4. Schema and Relationship to the RFC 2307 posixAccount</H1
|
|
><P
|
|
>Samba 2.2.3 includes the necessary schema file for OpenLDAP 2.0 in
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>examples/LDAP/samba.schema</TT
|
|
>. (Note that this schema
|
|
file has been modified since the experimental support initially included
|
|
in 2.2.2). The sambaAccount objectclass is given here:</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>objectclass ( 1.3.1.5.1.4.1.7165.2.2.2 NAME 'sambaAccount' SUP top STRUCTURAL
|
|
DESC 'Samba Account'
|
|
MUST ( uid $ rid )
|
|
MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
|
|
logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
|
|
displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
|
|
description $ userWorkstations $ primaryGroupID $ domain ))</PRE
|
|
></P
|
|
><P
|
|
>The samba.schema file has been formatted for OpenLDAP 2.0. The OID's are
|
|
owned by the Samba Team and as such is legal to be openly published.
|
|
If you translate the schema to be used with Netscape DS, please
|
|
submit the modified schema file as a patch to <A
|
|
HREF="jerry@samba.org"
|
|
TARGET="_top"
|
|
>jerry@samba.org</A
|
|
></P
|
|
><P
|
|
>Just as the smbpasswd file is mean to store information which supplements a
|
|
user's <TT
|
|
CLASS="FILENAME"
|
|
>/etc/passwd</TT
|
|
> entry, so is the sambaAccount object
|
|
meant to supplement the UNIX user account information. A sambaAccount is a
|
|
<TT
|
|
CLASS="CONSTANT"
|
|
>STRUCTURAL</TT
|
|
> objectclass so it can be stored individually
|
|
in the directory. However, there are several fields (e.g. uid) which overlap
|
|
with the posixAccount objectclass outlined in RFC2307. This is by design.</P
|
|
><P
|
|
>In order to store all user account information (UNIX and Samba) in the directory,
|
|
it is necessary to use the sambaAccount and posixAccount objectclasses in
|
|
combination. However, smbd will still obtain the user's UNIX account
|
|
information via the standard C library calls (e.g. getpwnam(), et. al.).
|
|
This means that the Samba server must also have the LDAP NSS library installed
|
|
and functioning correctly. This division of information makes it possible to
|
|
store all Samba account information in LDAP, but still maintain UNIX account
|
|
information in NIS while the network is transitioning to a full LDAP infrastructure.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2803">19.5. Configuring Samba with LDAP</H1
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN2805">19.5.1. OpenLDAP configuration</H2
|
|
><P
|
|
>To include support for the sambaAccount object in an OpenLDAP directory
|
|
server, first copy the samba.schema file to slapd's configuration directory.</P
|
|
><P
|
|
><TT
|
|
CLASS="PROMPT"
|
|
>root# </TT
|
|
><B
|
|
CLASS="COMMAND"
|
|
>cp samba.schema /etc/openldap/schema/</B
|
|
></P
|
|
><P
|
|
>Next, include the <TT
|
|
CLASS="FILENAME"
|
|
>samba.schema</TT
|
|
> file in <TT
|
|
CLASS="FILENAME"
|
|
>slapd.conf</TT
|
|
>.
|
|
The sambaAccount object contains two attributes which depend upon other schema
|
|
files. The 'uid' attribute is defined in <TT
|
|
CLASS="FILENAME"
|
|
>cosine.schema</TT
|
|
> and
|
|
the 'displayName' attribute is defined in the <TT
|
|
CLASS="FILENAME"
|
|
>inetorgperson.schema</TT
|
|
>
|
|
file. Both of these must be included before the <TT
|
|
CLASS="FILENAME"
|
|
>samba.schema</TT
|
|
> file.</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>## /etc/openldap/slapd.conf
|
|
|
|
## schema files (core.schema is required by default)
|
|
include /etc/openldap/schema/core.schema
|
|
|
|
## needed for sambaAccount
|
|
include /etc/openldap/schema/cosine.schema
|
|
include /etc/openldap/schema/inetorgperson.schema
|
|
include /etc/openldap/schema/samba.schema
|
|
|
|
## uncomment this line if you want to support the RFC2307 (NIS) schema
|
|
## include /etc/openldap/schema/nis.schema
|
|
|
|
....</PRE
|
|
></P
|
|
><P
|
|
>It is recommended that you maintain some indices on some of the most usefull attributes,
|
|
like in the following example, to speed up searches made on sambaAccount objectclasses
|
|
(and possibly posixAccount and posixGroup as well).</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
># Indices to maintain
|
|
## required by OpenLDAP 2.0
|
|
index objectclass eq
|
|
|
|
## support pb_getsampwnam()
|
|
index uid pres,eq
|
|
## support pdb_getsambapwrid()
|
|
index rid eq
|
|
|
|
## uncomment these if you are storing posixAccount and
|
|
## posixGroup entries in the directory as well
|
|
##index uidNumber eq
|
|
##index gidNumber eq
|
|
##index cn eq
|
|
##index memberUid eq</PRE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT2"
|
|
><H2
|
|
CLASS="SECT2"
|
|
><A
|
|
NAME="AEN2822">19.5.2. Configuring Samba</H2
|
|
><P
|
|
>The following parameters are available in smb.conf only with <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>--with-ldapsam</I
|
|
></TT
|
|
>
|
|
was included with compiling Samba.</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="smb.conf.5.html#LDAPSSL"
|
|
TARGET="_top"
|
|
>ldap ssl</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="smb.conf.5.html#LDAPSERVER"
|
|
TARGET="_top"
|
|
>ldap server</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="smb.conf.5.html#LDAPADMINDN"
|
|
TARGET="_top"
|
|
>ldap admin dn</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="smb.conf.5.html#LDAPSUFFIX"
|
|
TARGET="_top"
|
|
>ldap suffix</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="smb.conf.5.html#LDAPFILTER"
|
|
TARGET="_top"
|
|
>ldap filter</A
|
|
></P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><A
|
|
HREF="smb.conf.5.html#LDAPPORT"
|
|
TARGET="_top"
|
|
>ldap port</A
|
|
></P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>These are described in the <A
|
|
HREF="smb.conf.5.html"
|
|
TARGET="_top"
|
|
>smb.conf(5)</A
|
|
> man
|
|
page and so will not be repeated here. However, a sample smb.conf file for
|
|
use with an LDAP directory could appear as</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>## /usr/local/samba/lib/smb.conf
|
|
[global]
|
|
security = user
|
|
encrypt passwords = yes
|
|
|
|
netbios name = TASHTEGO
|
|
workgroup = NARNIA
|
|
|
|
# ldap related parameters
|
|
|
|
# define the DN to use when binding to the directory servers
|
|
# The password for this DN is not stored in smb.conf. Rather it
|
|
# must be set by using 'smbpasswd -w <TT
|
|
CLASS="REPLACEABLE"
|
|
><I
|
|
>secretpw</I
|
|
></TT
|
|
>' to store the
|
|
# passphrase in the secrets.tdb file. If the "ldap admin dn" values
|
|
# changes, this password will need to be reset.
|
|
ldap admin dn = "cn=Samba Manager,ou=people,dc=samba,dc=org"
|
|
|
|
# specify the LDAP server's hostname (defaults to locahost)
|
|
ldap server = ahab.samba.org
|
|
|
|
# Define the SSL option when connecting to the directory
|
|
# ('off', 'start tls', or 'on' (default))
|
|
ldap ssl = start tls
|
|
|
|
# define the port to use in the LDAP session (defaults to 636 when
|
|
# "ldap ssl = on")
|
|
ldap port = 389
|
|
|
|
# specify the base DN to use when searching the directory
|
|
ldap suffix = "ou=people,dc=samba,dc=org"
|
|
|
|
# generally the default ldap search filter is ok
|
|
# ldap filter = "(&(uid=%u)(objectclass=sambaAccount))"</PRE
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2850">19.6. Accounts and Groups management</H1
|
|
><P
|
|
>As users accounts are managed thru the sambaAccount objectclass, you should
|
|
modify you existing administration tools to deal with sambaAccount attributes.</P
|
|
><P
|
|
>Machines accounts are managed with the sambaAccount objectclass, just
|
|
like users accounts. However, it's up to you to stored thoses accounts
|
|
in a different tree of you LDAP namespace: you should use
|
|
"ou=Groups,dc=plainjoe,dc=org" to store groups and
|
|
"ou=People,dc=plainjoe,dc=org" to store users. Just configure your
|
|
NSS and PAM accordingly (usually, in the /etc/ldap.conf configuration
|
|
file).</P
|
|
><P
|
|
>In Samba release 2.2.3, the group management system is based on posix
|
|
groups. This meand that Samba make usage of the posixGroup objectclass.
|
|
For now, there is no NT-like group system management (global and local
|
|
groups).</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2855">19.7. Security and sambaAccount</H1
|
|
><P
|
|
>There are two important points to remember when discussing the security
|
|
of sambaAccount entries in the directory.</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
><SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="EMPHASIS"
|
|
>Never</I
|
|
></SPAN
|
|
> retrieve the lmPassword or
|
|
ntPassword attribute values over an unencrypted LDAP session.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><SPAN
|
|
CLASS="emphasis"
|
|
><I
|
|
CLASS="EMPHASIS"
|
|
>Never</I
|
|
></SPAN
|
|
> allow non-admin users to
|
|
view the lmPassword or ntPassword attribute values.</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>These password hashes are clear text equivalents and can be used to impersonate
|
|
the user without deriving the original clear text strings. For more information
|
|
on the details of LM/NT password hashes, refer to the <A
|
|
HREF="ENCRYPTION.html"
|
|
TARGET="_top"
|
|
>ENCRYPTION chapter</A
|
|
> of the Samba-HOWTO-Collection.</P
|
|
><P
|
|
>To remedy the first security issue, the "ldap ssl" smb.conf parameter defaults
|
|
to require an encrypted session (<B
|
|
CLASS="COMMAND"
|
|
>ldap ssl = on</B
|
|
>) using
|
|
the default port of 636
|
|
when contacting the directory server. When using an OpenLDAP 2.0 server, it
|
|
is possible to use the use the StartTLS LDAP extended operation in the place of
|
|
LDAPS. In either case, you are strongly discouraged to disable this security
|
|
(<B
|
|
CLASS="COMMAND"
|
|
>ldap ssl = off</B
|
|
>).</P
|
|
><P
|
|
>Note that the LDAPS protocol is deprecated in favor of the LDAPv3 StartTLS
|
|
extended operation. However, the OpenLDAP library still provides support for
|
|
the older method of securing communication between clients and servers.</P
|
|
><P
|
|
>The second security precaution is to prevent non-administrative users from
|
|
harvesting password hashes from the directory. This can be done using the
|
|
following ACL in <TT
|
|
CLASS="FILENAME"
|
|
>slapd.conf</TT
|
|
>:</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>## allow the "ldap admin dn" access, but deny everyone else
|
|
access to attrs=lmPassword,ntPassword
|
|
by dn="cn=Samba Admin,ou=people,dc=plainjoe,dc=org" write
|
|
by * none</PRE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2875">19.8. LDAP specials attributes for sambaAccounts</H1
|
|
><P
|
|
>The sambaAccount objectclass is composed of the following attributes:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>lmPassword</TT
|
|
>: the LANMAN password 16-byte hash stored as a character
|
|
representation of a hexidecimal string.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>ntPassword</TT
|
|
>: the NT password hash 16-byte stored as a character
|
|
representation of a hexidecimal string.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>pwdLastSet</TT
|
|
>: The integer time in seconds since 1970 when the
|
|
<TT
|
|
CLASS="CONSTANT"
|
|
>lmPassword</TT
|
|
> and <TT
|
|
CLASS="CONSTANT"
|
|
>ntPassword</TT
|
|
> attributes were last set.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>acctFlags</TT
|
|
>: string of 11 characters surrounded by square brackets []
|
|
representing account flags such as U (user), W(workstation), X(no password expiration), and
|
|
D(disabled).</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>logonTime</TT
|
|
>: Integer value currently unused</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>logoffTime</TT
|
|
>: Integer value currently unused</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>kickoffTime</TT
|
|
>: Integer value currently unused</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>pwdCanChange</TT
|
|
>: Integer value currently unused</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>pwdMustChange</TT
|
|
>: Integer value currently unused</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>homeDrive</TT
|
|
>: specifies the drive letter to which to map the
|
|
UNC path specified by homeDirectory. The drive letter must be specified in the form "X:"
|
|
where X is the letter of the drive to map. Refer to the "logon drive" parameter in the
|
|
smb.conf(5) man page for more information.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>scriptPath</TT
|
|
>: The scriptPath property specifies the path of
|
|
the user's logon script, .CMD, .EXE, or .BAT file. The string can be null. The path
|
|
is relative to the netlogon share. Refer to the "logon script" parameter in the
|
|
smb.conf(5) man page for more information.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>profilePath</TT
|
|
>: specifies a path to the user's profile.
|
|
This value can be a null string, a local absolute path, or a UNC path. Refer to the
|
|
"logon path" parameter in the smb.conf(5) man page for more information.</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>smbHome</TT
|
|
>: The homeDirectory property specifies the path of
|
|
the home directory for the user. The string can be null. If homeDrive is set and specifies
|
|
a drive letter, homeDirectory should be a UNC path. The path must be a network
|
|
UNC path of the form \\server\share\directory. This value can be a null string.
|
|
Refer to the "logon home" parameter in the smb.conf(5) man page for more information.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>userWorkstation</TT
|
|
>: character string value currently unused.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>rid</TT
|
|
>: the integer representation of the user's relative identifier
|
|
(RID).</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
><TT
|
|
CLASS="CONSTANT"
|
|
>primaryGroupID</TT
|
|
>: the relative identifier (RID) of the primary group
|
|
of the user.</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>The majority of these parameters are only used when Samba is acting as a PDC of
|
|
a domain (refer to the <A
|
|
HREF="Samba-PDC-HOWTO.html"
|
|
TARGET="_top"
|
|
>Samba-PDC-HOWTO</A
|
|
> for details on
|
|
how to configure Samba as a Primary Domain Controller). The following four attributes
|
|
are only stored with the sambaAccount entry if the values are non-default values:</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>smbHome</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>scriptPath</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>logonPath</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>homeDrive</P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>These attributes are only stored with the sambaAccount entry if
|
|
the values are non-default values. For example, assume TASHTEGO has now been
|
|
configured as a PDC and that <B
|
|
CLASS="COMMAND"
|
|
>logon home = \\%L\%u</B
|
|
> was defined in
|
|
its <TT
|
|
CLASS="FILENAME"
|
|
>smb.conf</TT
|
|
> file. When a user named "becky" logons to the domain,
|
|
the <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>logon home</I
|
|
></TT
|
|
> string is expanded to \\TASHTEGO\becky.
|
|
If the smbHome attribute exists in the entry "uid=becky,ou=people,dc=samba,dc=org",
|
|
this value is used. However, if this attribute does not exist, then the value
|
|
of the <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>logon home</I
|
|
></TT
|
|
> parameter is used in its place. Samba
|
|
will only write the attribute value to the directory entry is the value is
|
|
something other than the default (e.g. \\MOBY\becky).</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2945">19.9. Example LDIF Entries for a sambaAccount</H1
|
|
><P
|
|
>The following is a working LDIF with the inclusion of the posixAccount objectclass:</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>dn: uid=guest2, ou=people,dc=plainjoe,dc=org
|
|
ntPassword: 878D8014606CDA29677A44EFA1353FC7
|
|
pwdMustChange: 2147483647
|
|
primaryGroupID: 1201
|
|
lmPassword: 552902031BEDE9EFAAD3B435B51404EE
|
|
pwdLastSet: 1010179124
|
|
logonTime: 0
|
|
objectClass: sambaAccount
|
|
uid: guest2
|
|
kickoffTime: 2147483647
|
|
acctFlags: [UX ]
|
|
logoffTime: 2147483647
|
|
rid: 19006
|
|
pwdCanChange: 0</PRE
|
|
></P
|
|
><P
|
|
>The following is an LDIF entry for using both the sambaAccount and
|
|
posixAccount objectclasses:</P
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>dn: uid=gcarter, ou=people,dc=plainjoe,dc=org
|
|
logonTime: 0
|
|
displayName: Gerald Carter
|
|
lmPassword: 552902031BEDE9EFAAD3B435B51404EE
|
|
primaryGroupID: 1201
|
|
objectClass: posixAccount
|
|
objectClass: sambaAccount
|
|
acctFlags: [UX ]
|
|
userPassword: {crypt}BpM2ej8Rkzogo
|
|
uid: gcarter
|
|
uidNumber: 9000
|
|
cn: Gerald Carter
|
|
loginShell: /bin/bash
|
|
logoffTime: 2147483647
|
|
gidNumber: 100
|
|
kickoffTime: 2147483647
|
|
pwdLastSet: 1010179230
|
|
rid: 19000
|
|
homeDirectory: /home/tashtego/gcarter
|
|
pwdCanChange: 0
|
|
pwdMustChange: 2147483647
|
|
ntPassword: 878D8014606CDA29677A44EFA1353FC7</PRE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="AEN2953">19.10. Comments</H1
|
|
><P
|
|
>Please mail all comments regarding this HOWTO to <A
|
|
HREF="mailto:jerry@samba.org"
|
|
TARGET="_top"
|
|
>jerry@samba.org</A
|
|
>. This documents was
|
|
last updated to reflect the Samba 2.2.3 release. </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="vfs.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="samba-howto-collection.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="cvs-access.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Stackable VFS modules</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="optional.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>HOWTO Access Samba source code via CVS</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |