目录
Samba Server
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,C/S架构,可用于用于Linux和Windows共享文件。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置”NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba:File share service(windows <–> linux),support edit(on-line) file’s content.Can be prevent the infection virus on windows OS.
You can setup the Samba server on Window or Linux.
Linux OS:
Protocol:SMB(Server message Block) Protocol
Port:TCP139 UDP137
Window OS:
Protocol:CIFS(Common Internet File System) Protocol
Port: TCP445 UDP138
Parameter
Program: smbd(Commonly used)umdbd(Rarely used)
Software:
samba-3.033-3.28.el5
samba-common
samba-client(Web GUI management samba service,Rarely used)
configure file:
/etc/samba/smb.conf
Tools for Check configure:testparm
Configuration file explain
Vim /etc/samba/smb.conf
#Section:
[global] #Global Setting
workgroup = #work group name
security = [share|user|server] #select one out of three
#share --> don't need the authentication
#user --> login the samba server share directory by local samba user authentication
#server --> user authentication by network
log file = #log file store url
[homes] #share /home directory
[printers] #Printers set
[userShare] #user-defined share directory
comment = #description of share directory
path = #share directory path
browseable = [yes|no] #samba service share directory whether show in the Network Neighborhood of windows OS.General the value is "yes"
guest ok = [yes|no] #share directory whether can access by anonymous user
#yes --> support anonymous user access
#no --> access by authentication
valid users = userName,@groupName #Allow user who can login share directory
writable = [yes|no] #User whether have permission to write in the share directory
write list = userName,@groupName #Allow user who have write permission in the share directory
public = [yes|no] #whether support anonymous user to login the share directory
create mode = 0644 #Set the default permissions of file when you create a new file in the share directory
directory mode = 0755 #Set the default permissions of directory when you create a new sub-directory in the share directory
#Attention: If you want to write into the share directory, you have to meet two condition.
# 1.Set option "writable = yes" into the config file
# 2.The share directory have permissions of writable(rw-rw-rw-)
Check samba config file:
1.Use command grep:
grep -V "^#" smb.conf | grep -V "^;" | grep -V ^$
2.Use command supported by samba service
testparm #Check and read the config file
Setup the Samba Server
Step1. Install samba and check the config file
yum in stall -y samba samba-common samba-client
grep -V "^#" /etc/samba/samba.conf | grep -V "^;" | grep -V ^$ #Look up the configuration file
testparm
Step2. Edit samba service config file.
vim /etc/samba/smb.conf
#Example:
[global]
security = user
hosts allow = 127. 192.168.8. 10.20.0. #limit access from IP address, Only allow access from network-segment with (127./192.168.8./10.20.0.)
hosts deny = 172.16.8. #Deny every access from 172.16.8.
[myshare]
comment = Jmilk share driectory
path = /tmp/myshare #share dir with /tmp/myshare
browseable = yes
guest ok = no
valid users = jmilk,@jmilkGroup
writable = yes
write list = jmilk,@jmilkGroup
create mode = 0644
public = no
directory mode = 0755
**Step3.**change the permission for share directory
chmod 757 /tmp/myshare #ensure the share directory have writable permissions
Step4. Create samba user in local, and setting not support login the OS for samba user.
Precondition:samba userName have to the same as OS userName.
useradd -M -s /sbin/nologin jsamba
pdbedit -a -u jsamba
#-a create
#-u userName
smbpasswd jsamba #change the password for samba user
pdbedit -Lv jsamba #list samba user detailed info
Step4. Start samba service
service smbd restart
Access the samba shareDirectory from other linux OS
Samba Server:Linux
Samba Client:Linux
Step1. List the share directory
smbclient -L SambaServerIP
Step2. Login the samba server’s share directory
1.Anonymous user login
smbclient //sambaServerIP/shareDirectoryName
#get --> download the file into local from samba server.
#put --> upload the file into samba server from local
2.Samba user authentication login
smbclient //sambaServerIP/shareDirectoryName -u sambaUserName
mount -o userName=jsamba,passwd fanguiju //sambaServerIP/shareDirectory /mnt
Access the windows OS samba shareDirectory from Linux
**Samba Server**Windows
Samba Client:Linux
Step1.
smbclient -L sambaServerIP -u administrator #login sambaServer(win) by adminstrator identity
smbclient -u administrator //sambaServerIP
step2. Mount share dirctory into local
mount -o userName=administrator //sambaServerIP(wim)/d$ /mnt/winShare
vim /etc/fstab #realize permanent mount
Attention:在同一个可以互通的网络中,只要有一台SambaSrever,那受到此SambaServer影响的LinuxOS和windowsOS都可以实现与sambaServer之间实现文件共享。
Access the samba shareDirectory of LinuxOS by winOS
**Server:**Linux
**Client:**Windows
Ctrl+R(run) //LinuxSambaServerIP #And then enter the user authentication
CMD.exe command below:
net use * /del /y #clear the user login cache