HOW TO INSTALL SAMBA ON FREEBSD
ASSUMPTIONS:
- You are familiar with computers, and probably know either Windows or Linux fairly well.
- You have already installed FreeBSD. If not, then click here: How to Install FreeBSD
- You have configured the FreeBSD shell. If not, then click here: How to Configure the FreeBSD Shell
- Your 'ports tree' is up to date. If you don't know, then it probably isn't current. Update the ports tree by issuing one of these commands: Update the Ports Tree Using CVSup
- Here is how to configure your computer so that CVSup is run on a regular basis
NOTE WELL:
- In the Samba configuration file, (as is true with many Unix type files), a hash/pound sign '#', and a semi-colon ';' at the beginning of a line means that the computer should ignore the rest of the line. Typically, these 'ignore' characters are for your benefit--they usually contain comments about what is taking place. Hence, when a line begins with # or ; it is 'commented out'. Sometimes double slashes '//' have the same 'ignore' effect--it just depends on what type of program is reading the file.
BEGIN INSTALLATION
- You can find samba in the this directory:
/usr/ports/net/samba3
At the present time (2004 September) '/samba3' will contain the 3.x series. '/samba' will contain 2.x series, which is obsolete.
- Enter:
make install
- Will look for file and download it from an FTP server if the file doesn't happen to be already in
/usr/ports/distfiles/
. The current version of the file (2004 September) is 3.0.7,1 and the file name is samba-3.0.7.tar.gz
.
- Once the file is downloaded and checked for integrity, the screen shows a number of options:
Options for samba 3.0.7,1
[X] LDAP With LDAP support
[X] ADS With Active Directory support
[X] CUPS With CUPS printing support
[X] WINBIND With WinBIND support
[ ] ACL_SUPPORT With ACL support
[ ] SYSLOG With Syslog support
[ ] QUOTAS With Quota support
[X] UTMP With UTMP support
[ ] MSDFS With MSDFS support
[ ] SAM_XML With XML smbpasswd backend
[ ] SAM_MYSQL With MYSQL smbpasswd backend
[ ] SAM_PGSQL With PostgreSQL smbpasswd backend
[ ] SAM_OLD_LDAP With Samba2.x LDAP smbpasswd backend
[ ] PAM_SMBPASS With SMB PAM module
[X] POPT With installed POPT library
- Leave options as they are
- Tab to OK, press enter.
AUTOMATED EXTRACTION AND INSTALLATION
- Will say:
Extracting samba-3.0.7,1
or similar.
- Screen shows:
Options for gettext:
[X] Examples
[X] HTML
Check both options
- Press Enter.
Will then go on showing lots of lines of messages as it builds. It will download any program/file that it depends on, including autoconf.
- It is possible that the 'make install' process will not complete successfully. If this happens, go to: 'make install' fails on FreeBSD
- After Samba has been installed, you should see something like this:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/bin/testprns
/usr/local/bin/smbcquotas
/usr/local/bin/smbcacls
/usr/local/bin/wbinfo
/usr/local/bin/smbtree
/usr/local/bin/smbspool
/usr/local/bin/smbpasswd
/usr/local/bin/testparm
/usr/local/bin/smbcontrol
/usr/local/bin/ntlm_auth
/usr/local/bin/net
This port has installed the following startup scripts which may cause
these network services to be started at boot time.
/usr/local/etc/rc.d/samba.sh
If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type 'make deinstall'
to deinstall the port if this is a concern.
For more information, and contact details about the security
status of this software, see the following webpage:
http://www.samba.org/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COPY SAMBA CONFIGURATION FILE
- When Samba was installed, it created a a default configuration file in:
/usr/local/etc/
Oddly enough it is called:
smb.conf.default
Also, there is a copy here as well:
/usr/ports/net/samba3/work/samba-3.0.7/examples/smb.conf.default
Since the system needs the file to be named 'smb.conf', let's make a copy:
cd /usr/local/etc/
cp -p
smb.conf.default smb.conf
EDIT SAMBA CONFIGURATION FILE
In order for Samba to work we need to edit this file a bit. So, let's fire up Pico:
pico smb.conf
- Item: 'workgroup'
Change from "MYGROUP" to whatever the name your workgroup is.
example:
workgroup = XYZworkgroup
- Item: 'server string'
Change the server string to whatever is appropriate. Here are some possibilities:
%h Samba Server
%h-the-FreeBSD-Samba-Server
%h Samba
%h_Samba_File_Server_1
'%h' is a variable for the name of the Host computer that Samba is running on.
- Item: 'log file'
The default line is:
log file = /var/log/samba/log.%m
The %m is a variable for the client logging in. You can use the default naming convention, or perhaps something like this:
log file = /var/log/Samba-%m.log
CONFIGURE FOR INDIVIDUAL USER'S LOGIN PATH
- Go down until you see:
========================== Share Definitions ==========================
- Let's set up the users so that they cannot obliterate their configuration files. The first section is:
[homes]
comment = Homes Directories
browseable = no
writable = yes
Let's change this to:
[homes]
comment = Home directory for %u on %h
browseable = no
writable = yes
path = /usr/home/%u/Docs
valid users = %S
- Let's do the public section. Just below the commented out section called [public] (just before the '# Other examples' section), let's add a public directory that can be read from and written to by all users:
# A publicly accessible directory, that can be read from
# or written to by all valid users.
[public]
comment = %h Shared Public Directory
path = /usr/home/samba/public
force directory mode = 0777
force create mode = 0777
force group = nobody
force user = nobody
public = yes
writeable = yes
read only = no
- Save this file, and exit Pico:
Ctrl-O
Press enter
Ctrl-X
- Now let's test the file for typos and other errors:
/usr/local/bin/testparm | more
If you don't see any error messages, then it's good to go.
- Next, let's create those directories that we referenced just a bit ago:
cd /usr
mkdir home
cd home
mkdir samba
cd samba
mkdir public
cd public
- Let's reboot the computer:
shutdown -r +1
- Wait until the computer reboots, then log in again.
- In order for the users to be able to use Samba on this computer, they have to be added to 2 user databases. The first is the OS database, and the second is the Samba user database.
CREATE ACCOUNTS ON FREEBSD FOR WINDOWS USERS
- For each of your users, add them to the OS database. After you have entered your first user, the system will ask you if you have more users to enter. Enter them all. Start this process by entering:
adduser -v
If it's the first time you have used the 'adduser' command, you should see the following:
/etc/adduser.conf: No such file or directory
Use option ''-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Usernames must match regular expression:
[^[a-z0-9_][a-z0-9_-]*$]
Press the enter key if you agree or enter the following if your Windows users have capitalized usernames:
^[A-Za-z0-9_][a-z0-9_-]*$
- Shows:
Enter your default shell: csh date no sh tcsh zsh [sh]:
Enter:
csh
- Shows:
Your default shell is: csh -> /bin/csh
Enter your default HOME partition: [/home]:
Press enter.
- Shows:
Oops, /usr/home already exists.
Create symlink: /home -> /user/home
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Press enter.
- Shows:
Send message from file: /etc/adduser.message no
[/etc/adduser.message:]
Press enter.
- Shows:
Create ``/etc/adduser.message''? (y/n) [y]:
Press enter.
- Shows:
Use passwords (y/n) [y]:
Press enter.
- Shows:
Write your configuration to /etc/adduser.conf? (y/n) [y]:
Press enter.
- Shows:
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [[^[a-z0-9_][a-z0-9_-]*$