both methods will create a directory called "samba4" in the current
directory. If you don't have rsync or svn then install one of them.
+Since only released versions of Samba contain a pregenerated configure script,
+you will have to generate it by hand:
+
+ $ cd samba4/source
+ $ ./autogen.sh
+
Note that the above rsync command will give you a checked out svn
repository. So if you also have svn you can update it to the latest
version at some future date using:
- cd samba4
- svn up
-
+ $ cd samba4
+ $ svn up
Step 2: compile Samba4
----------------------
+Recommended optional development libraries:
+- acl and xattr development libraries
+- gnutls
+- readline
+
Run this:
- cd samba4/source
- ./autogen.sh
- ./configure.developer -C
- make
+ $ cd samba4/source
+ $ ./configure
+ $ make proto all
-If you have gcc 3.4 or newer, then run "make pch" before "make" to
+If you have gcc 3.4 or newer, then substitute "pch" for "proto" to
greatly speed up the compile process (about 5x faster).
-
Step 3: install Samba4
----------------------
directory (defaults to /usr/local/samba). Use --prefix option to
configure above to change this.
- make install
+ # make install
Step 4: provision Samba4
------------------------
-The "provision" step sets up a basic user database.
-
- cd source
- ./script/provision.pl --realm=YOUR.REALM --domain=YOURDOM --adminpass=SOMEPASSWORD
+The "provision" step sets up a basic user database. Make sure your smbscript
+binary is installed in a directory listed in your PATH environment variable.
+It is presumed it's available just like any other commands from your shell.
+Must be run as a user with permission to write to the install directory.
-This will create a file called newsam.ldb. You need to copy this to
-sam.ldb in the "private" subdirectory of your install. For example:
+ # cd source
+ # ./setup/provision --realm=YOUR.REALM --domain=YOURDOM --adminpass=SOMEPASSWORD
- cp newsam.ldb /usr/local/samba/private/sam.ldb
+REMINDER: Add the "bin" directory of the path you installed to
+ (e.g. /usr/local/samba/bin) to your path, or the provision command
+ will not work.
+'YOURDOM' is the NT4 style domain name. 'YOUR.REALM' is your kerberos
+realm, which is typically your DNS domain name.
Step 5: Create a simple smb.conf
--------------------------------
-You need to create a smb.conf file in the lib/ directory of your
-install. The default is /usr/local/samba/lib/smb.conf. A minimal
-smb.conf would be:
-
- workgroup = YOURDOM
+The provisioning will create a very simple smb.conf with no shares by
+default. You will need to update it to add at least one share. For
+example:
[test]
path = /data/test
read only = no
-The workgroup must exactly match the --domain argument you gave to provision.pl
-
Step 6: starting Samba4
-----------------------
The simplest is to just run "smbd", but as a developer you may find
the following more useful:
- smbd -i -M single -d3
+ # smbd -i -M single
that means "start smbd without messages in stdout, and running a
-single process, with level 3 debugging". That mode of operation makes
-debugging smbd with gdb particularly easy.
+single process. That mode of operation makes debugging smbd with gdb
+particularly easy.
+
+Note that now it is no longer necessary to have an instance of nmbd
+from Samba 3 running. If you are running any smbd or nmbd processes
+they need to be stopped before starting smbd from Samba 4.
Make sure you put the bin and sbin directories from your new install
in your $PATH. Make sure you run the right version!
try these commands:
- smbclient //localhost/test -Uadministrator%SOMEPASSWORD
+ $ smbclient //localhost/test -Uadministrator%SOMEPASSWORD
or
- ./script/tests/test_posix.sh //localhost/test administrator SOMEPASSWORD
+ $ ./script/tests/test_posix.sh //localhost/test administrator SOMEPASSWORD
NOTE about filesystem support
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_SECURITY=y
+If you are running a Linux 2.6 kernel with CONFIG_IKCONFIG_PROC
+defined you can check this with the following command:
+
+ $ zgrep CONFIG_EXT3_FS /proc/config.gz
+
If you don't have a filesystem with xattr support, then you can
simulate it by using the option:
To test your filesystem support, install the 'attr' package and run
the following 4 commands as root:
- touch test.txt
- setfattr -n user.test -v test test.txt
- setfattr -n security.test -v test2 test.txt
- getfattr -d test.txt
- getfattr -d test.txt
+ # touch test.txt
+ # setfattr -n user.test -v test test.txt
+ # setfattr -n security.test -v test2 test.txt
+ # getfattr -d test.txt
+ # getfattr -n security.test -d test.txt
You should see output like this:
If you get any "Operation not permitted" errors then it probably means
you didn't try the test as root.
+
+