RHEL 7 : Install and setup samba server ( file sharing)
Arch : x86_64
Samba Version : Samba 4.1.1 (Default from CentOS repo)
Kernel Versio : 3.10.0-123.el7.x86_64
IP Address : 192.168.56.102
Network Subnet : 192.168.56.0/24 or can be written also as 192.168.56.0/255.255.255.0
NOTE: CentOS 7 is installed with minimal packages (minimal installed)
Samba Server port numbers
137/tcp137/udp
138/tcp
138/udp
139/udp
139/udp
445/tcp
445/udp
Daemon used in Samba server
Samba services are implemented as two daemons:1. smbd, It provides the file and printer sharing services.
2. nmbd It provides the NetBIOS-to-IP-address name service. NetBIOS over TCP/IP requires some method for mapping NetBIOS computer names to the IP addresses of a TCP/IP network.
How to install and configure samba server
Step 1 : Use yum command to install samba packages(a) policycoreutils-python = For semanage command
(b) samba-client : For smbpasswd
(c) cups-libs : For printer service
(d) samba and samba-commons : For Samba server
yum install -y samba samba-commons cups-libs policycoreutils-python samba-client
Step 2: create a directory
Create a directory called sharedrepo in / (main root) . This directory will be shared with clients.
mkdir /home/smbshare
Step 3: Add a new group or can use existing group
To provide access on shared directory,Here we are adding new group called staff.
groupadd smb
Step 4: Change the group and permission of sharing folder
Here we are using /sharedrepo in samba server, hence group and permission are changing for this directory.
chgrp -R smb /sharedrepo chmod -R 777 /sharedrepo
Step 5: Change the selinux security context
Change the selinux security context on sharing directory and set the selinux boolean value for samba.
You can skip this step in case you disable selinux on system.
# semanage fcontext -a -t samba_share_t /home/smbshare/
# restorecon -Rv /home/smbshare/
# setsebool -P samba_enable_home_dirs on
Step 6: create user, add into group and set samba password
create user and add them in group called staff. And set the samba password for this user.
# useradd smbuser # usermod -aG smb smbuser
# smbpasswd -a smbuserNew SMB password:
Retype new SMB password:
Added user smbuser.
Step 7: Edit /etc/samba/smb.conf file
First take backup of /etc/samba/smb.conf file then edit the smb.conf file.
cd /etc/samba/ cp -p smb.conf smb.conf.orig
And add the below given contents in last line of /etc/samba/smb.conf file.
vi /etc/samba/smb.conf
[smbshare] comment = shared-directory path = /home/smbshare public = no valid users = sbmuser, @smb writable = yes browseable = yes create mask = 0765
Step 8: Now start the smb and nmb services.
systemctl start smb.service systemctl start nmb.service
Step 9 : Enable smb and nmb service at booting of system
systemctl enable smb.service systemctl enable nmb.service
Step 10 : Add firewalld rule to allow samba
# firewall-cmd --add-service=samba --permanent
Now reload firewalld
# firewall-cmd --reload
Note: firewalld service must be runnig for above procedure. To start firewalld use systemd command i.e
systemctl start firewalld.service
How to connect to Samba Server
1. Windows :In Windows Operatig System, open the run by pressing in combination of
Start key + r
. Then type in this format \\ip-address-of-samba-server\shared-
Direcory-name
\\192.168.56.102\sharedrepo
Give username and password when it will ask.
2. Linux :
smbclient must be installed on system .
(A) List the shared files or directory available in samba server
smbclient -L \\192.168.56.102 -U smbuser
In above command,
-L = For listing shared objects.
Samba Server IP Address = 192.168.56.102
User Name =smbuser
Below given is sample output
sharad@linuxworld:~$ smbclient -L \\192.168.56.102 -U smbuser Enter test's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba Server Version 4.1.1) sharedrepo Disk shared-directory test Disk Home Directories Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1] Server Comment --------- ------- LOCALHOST Samba Server Version 4.1.1 Workgroup Master --------- ------- MYGROUP LOCALHOST sharad@linuxworld:~$
(B) Access using smb console
smbclient //192.168.56.102/sharedrepo -U smbuser
After login, you will get smb console. You can use get and put command for getting/putting the file. There are other commands you can use also.
Sample output
sharad@linuxworld:~$ smbclient //192.168.56.102/sharedrepo -U smbuser Enter test's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1] smb: \> smb: \> help ? allinfo altname archive backup blocksize cancel case_sensitive cd chmod chown close del dir du echo exit get getfacl geteas hardlink help history iosize lcd link lock lowercase ls l mask md mget mkdir more mput newer notify open posix posix_encrypt posix_open posix_mkdir posix_rmdir posix_unlink print prompt put pwd q queue quit readlink rd recurse reget rename reput rm rmdir showacls setea setmode stat symlink tar tarmode timeout translate unlock volume vuid wdel logon listconnect showconnect tcon tdis tid logoff .. ! smb: \>(C) Mount the samba shared directory
Mount the samba shared directory in machine , your system must support cifs file system
mount -t cifs //192.168.56.102/sharedrepo -o username=test /mnt/
In Ubuntu, Click on dash home and simply access the samba server
smb://192.168.56.102/
See the sample screenshot of dash home.
No comments:
Post a Comment