X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=howto.txt;h=78bed1316aa0916ed8014568026d7ac56f35ec4b;hp=76acc19d9be4b6fa4242a559939c7b2adff0398d;hb=d53467b9afbd90928ce51c5c6adcf51f2c6643c3;hpb=c4d0fdbf931c594729878528d65d6f5e3b2c33c8 diff --git a/howto.txt b/howto.txt index 76acc19d9be..78bed1316aa 100644 --- a/howto.txt +++ b/howto.txt @@ -1,55 +1,68 @@ Samba4 developer howto ----------------------- +====================== tridge@samba.org, December 2004 +A more up to date version of this howto can be found in the wiki +at http://wiki.samba.org/index.php/Samba4/HOWTO. This is a very basic document on how to setup a simple Samba4 server. This is aimed at developers who are already familiar with Samba3 and wish to participate in Samba4 development. This is not aimed at production use of Samba4. +.. contents:: Step 1: download Samba4 ----------------------- There are 2 methods of doing this: - method 1: "rsync -avz samba.org::ftp/unpacked/samba4 ." + method 1: "rsync -avz samba.org::ftp/unpacked/samba_4_0_test/ samba4" - method 2: "svn co svn://svnanon.samba.org/samba/branches/SAMBA_4_0 samba4" + method 2: "git clone git://git.samba.org/samba.git samba4; cd samba4; git checkout v4-0-test; cd .." 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. +directory. If you don't have rsync or git then install one of them. -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: +Since only released versions of Samba contain a pregenerated configure script, +you will have to generate it by hand:: - $ cd samba4 - $ svn up + $ cd samba4/source + $ ./autogen.sh +Note that the above rsync command will give you a checked out git +repository. So if you also have git you can update it to the latest +version at some future date using:: + + $ cd samba4 + $ git pull origin v4-0-test Step 2: compile Samba4 ---------------------- -Run this: +Recommended optional development libraries: +- acl and xattr development libraries +- gnutls +- readline + +Run this:: $ cd samba4/source - $ ./autogen.sh - $ ./configure.developer -C - $ make + $ ./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 ---------------------- Run this as a user who have permission to write to the install directory (defaults to /usr/local/samba). Use --prefix option to configure above to change this. + +:: # make install @@ -58,44 +71,43 @@ Step 4: provision Samba4 ------------------------ The "provision" step sets up a basic user database. +Must be run as a user with permission to write to the install directory. - $ cd source - $ ./setup/provision.pl --realm=YOUR.REALM --domain=YOURDOM --adminpass=SOMEPASSWORD +:: -This will create a number of new 'ldb' database files in a directory -newdb.XXX. You need to move these to the "private" subdirectory of -your install. For example: + # cd source + # bin/smbpython ./setup/provision --realm=YOUR.REALM --domain=YOURDOM \ + # --adminpass=SOMEPASSWORD --server-role='domain controller' - # mv newdb.123/*.ldb /usr/local/samba/private/ +REMINDER: Use the path to smbpython, as the provision command + will not work with the system python. +'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: +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 @@ -108,11 +120,13 @@ in your $PATH. Make sure you run the right version! Step 7: testing Samba4 ---------------------- -try these commands: +try these commands:: + + $ smbclient //localhost/test -Uadministrator%SOMEPASSWORD - $ smbclient //localhost/test -Uadministrator%SOMEPASSWORD - or - $ ./script/tests/test_posix.sh //localhost/test administrator SOMEPASSWORD +or:: + + $ ./script/tests/test_posix.sh //localhost/test administrator SOMEPASSWORD NOTE about filesystem support @@ -122,23 +136,23 @@ To use the advanced features of Samba4 you need a filesystem that supports both the "user" and "system" xattr namespaces. If you run Linux with a 2.6 kernel and ext3 this means you need to -include the option "user_xattr" in your /etc/fstab. For example: +include the option "user_xattr" in your /etc/fstab. For example:: -/dev/hda3 /home ext3 user_xattr 1 1 + /dev/hda3 /home ext3 user_xattr 1 1 You also need to compile your kernel with the XATTR and SECURITY -options for your filesystem. For ext3 that means you need: +options for your filesystem. For ext3 that means you need:: 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: +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: +simulate it by using the option:: posix:eadb = /usr/local/samba/eadb.tdb @@ -150,7 +164,7 @@ Testing your filesystem ----------------------- To test your filesystem support, install the 'attr' package and run -the following 4 commands as root: +the following 4 commands as root:: # touch test.txt # setfattr -n user.test -v test test.txt @@ -158,11 +172,11 @@ the following 4 commands as root: # getfattr -d test.txt # getfattr -n security.test -d test.txt -You should see output like this: +You should see output like this:: # file: test.txt user.test="test" - + # file: test.txt security.test="test2" @@ -173,4 +187,5 @@ with the right options. If you get any "Operation not permitted" errors then it probably means you didn't try the test as root. - +.. + vim: ft=rest