Network: Samba: How-To START HERE!!!

(last edit: 2002-05-14) How to start First of all start with the obvious: install samba. You can find samba in the dir: /usr/ports/net/samba The following dir's are important after the installation: /usr/local/sbin /usr/local/etc The samba deamons 'smbd' and 'nmbd' will be in the 'sbin' dir and the configuration file(s) will be in the 'etc' dir. There will be a sample configuration file in the 'etc' dir but I advise you to make your own from scratch. You'll see that this is easier than altering the sample file. Configuration file To create your own 'smb.conf' file see Simple configuration or Advanced configuration. When you're finished with building your own configuration file(s) run 'testparm' to see if the file is correct. Users Although you probaly forgot: windows does have users. When windows starts, you log in as a known user. If this users must be able to connect to the samba shares then this user MUST exist on your FreeBSD machine. So basicly the windows user must have an account on your FreeBSD machine and it is handy to set the samba password to the windows password. Set the shell to 'nologin' and the homedir to 'nonexistent' if you don't want the users to actually be able to login to your FreeBSD machine via telnet/ssh etc. You can add users with the 'adduser' script (just type 'adduser' at the prompt), remove them with 'rmuser' and edit them with 'vipw'. You must be root to execute this commands. man vipw Vipw edits the password file after setting the appropriate locks, and does any necessary processing after the password file is unlocked. If the password file is already locked for editing by another user, vipw will ask you to try again later. The default editor for vipw is vi(1). E.g. change : jappe:[encrypted password]:1000:50::0:0:jappe reuling:/home/jappe:/usr/local/bin/zsh in: jappe:[encrypted password]:1000:50::0:0:jappe reuling:/nonexistent:/sbin/nologin If the user does exist on the FreeBSD machine you'll have to give them access to samba by typing the following as root: $smbpasswd -a [username] This will ask you for a password and will add this password to the samba password file. See FreeBSD commands for some more info about 'smbpasswd'. Don't edit the samba password file yourself!! Just use 'smbpasswd'. Finaly You have to make sure that 'smbd' and 'nmbd' are running. They live in /usr/local/sbin. You can start them by typing: /usr/local/sbin]./smbd -D /usr/local/sbin]./nmbd -D The '-D' option makes sure they start as deamon and thus in the background. There is a default start-up script in the '/usr/local/etc/rc.d' directory named 'samba.sh.sample'. Copy this file to 'samba.sh' (in the same dir) and smbd and nmbd will be started when you boot your computer. This is how the 'samba.sh.sample' file looks like: ------ #!/bin/sh smbspool=/var/spool/samba pidfiledir=/var/run smbd=/usr/local/sbin/smbd nmbd=/usr/local/sbin/nmbd # start if [ "x$1" = "x" -o "x$1" = "xstart" ]; then if [ -f $smbd ]; then if [ -d $smbspool ]; then rm -f $smbspool/* fi echo -n ' Samba' $smbd -D $nmbd -D fi # stop elif [ "x$1" = "xstop" ]; then kill `cat $pidfiledir/smbd.pid` kill `cat $pidfiledir/nmbd.pid` fi ------ If you don't want to use this script then you can edit your /etc/rc.local file. Put this in the 'rc.local' file: ------- if [ -x /usr/local/sbin/smbd ] then echo echo "Starting Samba deamon" echo /usr/local/sbin/smbd -D else echo echo "Samba Deamon not found in /usr/local/sbin." echo "!!!Samba daemon not started!!!" echo fi if [ -x /usr/local/sbin/nmbd ] then echo echo "Starting NetBIOS name server" echo /usr/local/sbin/nmbd -D else echo echo "NetBIOS name server not found in /usr/local/sbin." echo "!!!NetBIOS name server not started!!!" echo fi ------- Trouble If things doesn't work as they are supposed to: see the log files (duh?) No realy they can help you allot. These log files are (if you haven't changed the location/names in the config files) in the dir '/var/log'. There will be a 'nmbd.log' and a 'smbd.log'.

Click here to go back to the index.