概述
Samba是在Linux和Unix系统上实现SMB协议的一个免费软件,由服务器客户端程序构成。SMB(Server Messages Block)信息服务块是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block)消息服务块协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看字典,突然看到一个拉丁舞蹈的名字---Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
Samba能够为选定的Unix目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。
- NFS针对 Unix系统的机器间文档的分享;
- CIFS针对windows系统间文档的分享;
- SAMBA针对Unix系统和windows系统间文档的分享;
一、部署samba服务端
1、yum安装samba服务端
SAMBA服务TCP端口:139,445 UDP端口:137,138
yum -y install samba* systemctl restart smb systemctl status smb systemctl enable smb
2、创建samba用户
groupadd -g 500 oasmb
useradd -g 500 -G 500 oasmb
passwd oasmb #设置密码为xxx
--将oasmb用户添加为samba用户并设置samba用户登录密码为xxxx
smbpasswd -a oasmb
pdbedit -L #查看samba用户
--解除selinux连接限制
setsebool -P samba_enable_home_dirs on
3、修改smb配置
vim /etc/samba/smb.conf
===========================================
[oafile]
comment = DFWLG OAFILE DIRECTORYpath = /www/server/samba/oafilewritable = yes
valid users = oasmb
create mask = 0700create mode = 0700unix extensions = no
wide links = yes
guest ok = nopublic = nodirectory mode = 0700directory mask = 0700
browseable = yes
read only = no
follow symlinks = yes
max connections = 0hosts allow = 172.xxxx
4、创建共享目录
mkdir -p /www/server/samba/oafile
chmod -R 777 /www/server/samba/oafile
chown -R oasmb:oasmb /www/
systemctl restart smb
二、部署samba客户端
1、yum安装samba客户端
yum -y install samba-client cifs-utils
这里用蓝鲸批量装samba客户端
2、挂载samba服务
--查看samba服务器共享目录
smbclient -L //172.xxx -U oasmb
mkdir -p /www/server/oafile
chmod -R 777 /www/server/oafile
-- 挂载(如果报错加--verbose看具体报错)
mount -t cifs -o username=oasmb,password=xxxx34 //172.xxxx/oafile /www/server/oafile
-- 开机自动挂载
cp /etc/fstab /etc/fstab.$(date +%F)
echo "//172.xxx/oafile /www/server/oafile cifs defaults,rw,user=oasmb,pass=xxwxx34,sec=ntlmssp 0 0" >>/etc/fstab
mount -a
到这里就完成samba服务端及客户端的部署了,有兴趣的朋友可以测试一下,windows环境访问的就不做演示了。
后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!