1. 1 Preliminary Note
I'm using a CentOS 5.6 system here with the hostname server1.example.com and the IP address
192.168.0.100.
Please make sure that SELinux is disabled as shown in chapter 6 of this tutorial: The Perfect Server -
CentOS 5.6 x86_64 [ISPConfig 2] - Page 3
2 Installing Samba
Connect to your server on the shell and install the Samba packages:
yum install cups-libs samba samba-common
Edit the smb.conf file:
vi /etc/samba/smb.conf
Make sure you see the following lines in the [global] section:
[...]
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
security = user
passdb backend = tdbsam
[...]
This enables Linux system users to log in to the Samba server.
Then create the system startup links for Samba and start it:
chkconfig --levels 235 smb on
/etc/init.d/smb start
3 Adding Samba Shares
Now I will add a share that is accessible by all users.
Create the directory for sharing the files and change the group to the users group:
mkdir -p /home/shares/allusers
chown -R root:users /home/shares/allusers/
chmod -R ug+rwx,o+rx-w /home/shares/allusers/
At the end of the file /etc/samba/smb.conf add the following lines:
2. vi /etc/samba/smb.conf
[...]
[allusers]
comment = All Users
path = /home/shares/allusers
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
If you want all users to be able to read and write to their home directories via Samba, add the following
lines to /etc/samba/smb.conf (make sure you comment out or remove the other [homes] section in the
smb.conf file!):
[...]
[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
create mask = 0700
directory mask = 0700
Now we restart Samba:
/etc/init.d/smb restart
4 Adding And Managing Users
In this example, I will add a user named tom. You can add as many users as you need in the same way,
just replace the username tom with the desired username in the commands.
useradd tom -m -G users
Set a password for tom in the Linux system user database. If the user tom should not be able to log into
the Linux system, skip this step.
passwd tom
-> Enter the password for the new user.
Now add the user to the Samba user database:
smbpasswd -a tom
-> Enter the password for the new user.
Now you should be able to log in from your Windows workstation with the file explorer (address
is 192.168.0.100 or 192.168.0.100tom for tom's home directory) using the username tom and the
chosen password and store files on the Linux server either in tom's home directory or in the public
shared directory.
3. Step # 1: Add a user joe to UNIX/Linux system
adduser command adds user to the system according to command line options and configuration
information in /etc/adduser.conf. They are friendlier front ends to the low level tools like useradd.
Type any one of the following command:
# useradd joe
# passwd joe
OR
adduser joe
Step # 2: Add a user to samba
Now user joe has account on Linux/UNIX box. Use smbpasswd command to specifies that the
username following should be added to the local smbpasswd file:
# smbpasswd -a joe
Step # 3: Add a user to a Samab share
By default user gets access to /home/joe from windows system. Let us say you want to give joe access
to /data/accounts (make sure directory /data/accounts exists) directory. Open /etc/samba/smb.conf file
and add/modify share called [accounts]:
[accounts]
comment = Accounts data directory
path = /data/accounts
valid users = vivek raj joe
public = no
writable = yes
Save the file.
Step #4: Restart the samba
# service smb restart
OR
# /etc/init.d/smb reload