Readme for Samba 4
==================

Samba 4 is the ambitious next version of the Samba suite that is being
developed in parallel to the stable 3.0 series. The main emphasis in
this branch is support for the Active Directory logon protocols used
by Windows 2000 and above.

While we welcome your interest in Samba 4, we don't want you to run your
network with it quite yet. Please note the WARNINGS below, and the
STATUS file, which aims to document what should and should not work.

With 4 years of development under our belt since Tridge first proposed
a new Virtual File System (VFS) layer for Samba3 (a project which
eventually lead to our Active Directory efforts), we felt that we
should create something we could 'show off' to our users.  This is a
Technology Preview (TP), aimed at allowing you, our users, managers and
developers to see how we have progressed, and to invite your feedback and
support.

Warnings
--------

Samba4 is currently at alpha stage.  That is more a reference to
Samba4's lack of the features we expect you will need than a statement
of code quality, but clearly it hasn't seen a broad deployment yet.  If
you were to upgrade Samba3 (or indeed Windows) to Samba4, you would find
many things work, but that other key features you may have relied on
simply are not there yet.

For example, while Samba 3.0 is an excellent member of a Active
Directory domain, Samba4 is happier as a domain controller: (This is
where we have done most of the research and development).

While Samba4 is subjected to an awesome battery of tests on an
automated basis, and we have found Samba4 to be very stable in it's
behaviour, we have to recommend against upgrading production servers
from Samba 3 to Samba 4 at this stage.  If you are upgrading an
experimental server, or looking to develop and test Samba, you should
backup all configuration and data.

As we research the needs of Active Directory integration more closely,
we may need to change the format of the user database, in particular
as we begin to understand how the attributes are generated and stored.
At a worst case, we expect users will be able to extract the stored
data as LDIF and hand munge it, but until we make an alpha release, we
won't do this automatically.  Indeed, many module changes are simply
easier to cope with if you just re-provision after the upgrade.

We value the security of your computers, and so we must warn you that
Samba 4 Technology Preview includes basic Access Control List (ACL)
protection on the main user database, but due to time constraints,
none on the registry at this stage.  We also do not currently have
ACLs on the SWAT web-based management tool. This means that Samba 4
Technology Preview is not secure, and should not be exposed to
untrusted networks.

Within the above proviso, file system access should occur as the
logged in user, much as Samba3 does.

As such, we must strongly recommend against using Samba4 in a
production environment at this stage.

New Features
------------

Samba4 supports the server-side of the Active Directory logon environment
used by Windows 2000 and later, so we can do full domain join
and domain logon operations with these clients.

Our Domain Controller (DC) implementation includes our own built-in
LDAP server and Kerberos Key Distribution Centre (KDC) as well as the
Samba3-like logon services provided over CIFS.  We correctly generate
the infamous Kerberos PAC, and include it with the Kerberos tickets we
issue.

SWAT is now integrated into Samba 4 as the user-friendly interface to
Samba server management. SWAT provides easy access to our
setup and migration tools.  Using SWAT, you can migrate windows
domains in Samba 4, allowing easy setup of initial user databases, and
upgrades from Samba 3.

The new VFS features in Samba 4 adapts the file-system on the server to
match the Windows client semantics, allowing Samba 4 to better match
windows behaviour and application expectations.  This includes file
annotation information (in streams) and NT ACLs in particular.  The
VFS is backed with an extensive automated test suite.

A new scripting interface has been added to Samba 4, allowing
JavaScript programs to interface to Samba's internals.

The Samba 4 architecture is based around an LDAP-like database that
can use a range of modular backends.  One of the backends supports
standards compliant LDAP servers (including OpenLDAP), and we are
working on modules to map between AD-like behaviours and this back-end.
We are aiming for Samba 4 to be powerful front-end to large
directories.

Changes
-------

Those familiar with Samba 3 can find a list of user-visible changes
since that release series in the NEWS file.

- An optional password is no longer supported as the second argument to
  smbclient.

- The default location of smb.conf in non-FHS builds has changed from the
  PREFIX/lib directory to the PREFIX/etc directory.

Known issues
------------

- Standalone server and domain member roles are not currently
  supported.  While we have much of the infrastructure required, we
  have not collected these pieces together.

- There is no printing support in the current release.

- SWAT can be painful with <TAB> and forms.  Just use the mouse, as
  the JavaScript layer doing this will change.

Running Samba4
--------------

A short guide to setting up Samba 4 can be found in the howto.txt file
in root of the tarball.

Development and feedback
------------------------

Bugs can be filed at https://bugzilla.samba.org/. Please
look at the STATUS file before filing a bug to see if a particular
is supposed to work yet.

Development and general discussion about Samba 4 happens mainly on
the #samba-technical IRC channel (on irc.freenode.net) and
the samba-technical mailing list (see http://lists.samba.org/ for
details).