HOW TO INSTALL SAMBA ON FREEBSD
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.
- 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_-]*$]]:
Enter the user name of the Windows user (we will user 'winuser' as an example here):
winuser
- Shows:
Enter full name []:
Enter the user's full name:
Windows Q. User
- Shows:
Enter shell csh date no sh tcsh [csh]:
Press enter:
- Shows:
Enter home directory (full path) [/home/winuser]:
Press enter.
- Shows:
Uid [1xxx]:
Press enter.
- Shows:
Enter login class: default []:
Press enter
- Shows:
Login group winuser [winuser]:
Press enter.
- Shows:
Login group is ``winuser''. Invite winuser into other groups: guest no [no]:
Press enter to accept the default 'no'.
- Shows:
Enter password []:
Enter the password that 'winuser' uses to log into Windows. If there is no password, then just press enter.
- Shows:
Name: winuser
Password: ****
Fullname: Windows Q. User
Uid: 1000
Gid: 1000 (winuser)
Class:
Groups: winuser
HOME: /home/winuser
Shell: /bin/csh
OK? (y/n) [y]:
Press enter if everything looks OK.
- Shows:
Send message to ``winuser'' and: no root second_mail_address [no]:
Press enter.
- Shows:
winuser,
your account ``winuser'' was created. Have fun!
See also chpass(1), finger(1), passwd(1)
Add anything to default message (y/n) [n]:
Press enter to accept default.
- Shows:
Send message (y/n) [y]:
Press enter.
- Shows:
Copy files from /usr/share/skel to /home/winuser
Add another user? (y/n) [y]:
If you have more users to enter, then press enter. Otherwise, type 'n' then press enter.
CREATE ACCOUNTS ON SAMBA FOR WINDOWS USERS
- Now that the users have been created on the operating system, we can allow those users to access Samba. For each of your users cycle through this process which is started by entering (again, substitute your user for 'winuser'):
smbpasswd -a winuser
- Shows:
New SMB password:
Enter the Windows password.
- Shows:
Retype new SMB password:
Re-enter the Windows password.
- The first time you enter a Samba user name you will see this message:
startsmbfilepwent_internal: file /usr/local/private/smbpasswd did not exist. File successfully created.
- Shows:
Added user winuser
Repeat the 'smbpasswd -a winuser' command for all of your users to enter them in the Samba users database.
SET SAMBA SO THAT IT LOADS ON BOOT UP
- In the /etc directory, there is a file called 'rc.conf'. We will need to add a line in this file so that Samba is run when booting up.
Enter:
cd /etc
- Let's back up the existing file:
cp -p rc.conf rc.conf.1.bak
- To edit, enter:
pico rc.conf
- Just below 'usbd_enable="YES"' and before '# This file now contains...' let's add these 2 lines:
# Start up the Samba file server program using /usr/local/etc/smb.conf
samba_enable="YES"
- To save the file and exit:
Ctrl-O
Press enter
Ctrl-X
- Reboot by entering:
shutdown -r +1
SET PERMISSIONS FOR SAMBA SHARED DIRECTORIES
- Since we are allowing anyone to do anything in the public directory, let's set file permissions appropriately. Enter:
cd /usr/home/samba
- To give Read, Write and eXecute permissions to the user, enter:
chmod u=rwx public
- To give Read, Write and eXecute permissions to the members of the Group, enter:
chmod g=rwx public
- To give Read, Write and eXecute permissions to all Others, enter:
chmod o=rwx public
- Let's create the users' 'Docs' directories:
cd /usr/home
ls -lt
Looking at the list, you should see the names of the users that you set up. For each user, we will now create a 'Docs' directory. Substitute each of your users for 'username' in the following:
mkdir username/Docs
- Now since we created all these 'Docs' directories as 'root', let's give ownership to the user. For each user ('username'), do the following:
chown username username/Docs
- Now, all of the users are set up. Go to a Windows computer and double-click on 'Network-Neighborhood'. You should be able to navigate to your new Samba server!
For more: http://www.us-webmasters.com