SAMBA
SAMBA文件共享服务
一、SAMBA简介
Samba是在Linux]和[UNIX]系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
二、SAMBA搭建
2.1、环境
主机 | ip |
---|---|
centos7 | 192.168.1.44(node4) |
centos7 | 192.168.1.41(node1) |
Windows | 192.168.1.40 |
2.2、安装
#在node4上
[root@node4 ~]# yum install samba
2.3、SAMBA参数解释
[global] #全局参数。
workgroup = MYGROUP #工作组名称
server string = Samba Server Version %v #服务器介绍信息,参数%v为显示SMB版本号
log file = /var/log/samba/log.%m #定义日志文件的存放位置与名称,参数%m为来访的主机名
max log size = 50 #定义日志文件的最大容量为50KB
security = user #安全验证的方式,总共有4种
#share:来访主机无需验证口令;比较方便,但安全性很差
#user:需验证来访主机提供的口令后才可以访问;提升了安全性
#server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
#domain:使用域控制器进行身份验证
passdb backend = tdbsam #定义用户后台的类型,共有3种
#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
#tdbsam: 创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
#ldapsam: 基于LDAP服务进行账户验证
load printers = yes #设置在Samba服务启动时是否共享打印机设备
cups options = raw #打印机的选项
[homes] #共享参数
comment = Home Directories #描述信息
browseable = no #指定共享信息是否在“网上邻居”中可见
writable = yes #定义是否可以执行写入操作,与“read only”相反
[printers] #打印机共享参数
comment = All Printers
path = /var/spool/samba #共享文件的实际路径(重要)。
browseable = no
guest ok = no #是否所有人可见,等同于"public"参数。
writable = no
printable = yes
2.4、修改配置文件
#默认配置文件是/etc/samba/smb.conf
#为了方便阅读我们把注释都删了
[root@node4 ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@node4 ~]# cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
[root@node4 ~]# cat /etc/samba/smb.conf
2.6、正式配置我们要共享的文件夹
第一步:创建用于访问共享资源的账户信息。在centos7系统中,Samba服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且验证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。
用于pdbedit命令的参数以及作用
参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表
#先创建个用户,作为认证口令用户
[root@node4 ~]# useradd tzh
#密码自己设置输入2次一样的即可
[root@node4 ~]# passwd tzh
#该账户在Samba服务数据库中的密码,回去输入2次一样的即可
[root@node4 ~]# pdbedit -a -u tzh
第2步:创建要共享的问价夹、给权限
[root@node4 ~]# mkdir /home/data
[root@node4 ~]# chown -Rf tzh:tzh /home/data
第三步:修改Samba服务程序的主配置文件
[root@node4 ~]# cat /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
max log size = 50
passdb backend = tdbsam
load printers = yes
cups options = raw
[data] ##该名字,就是共享过去显示的名字!!!!等会上截图
comment = Do not arbitrarily modify the database file
path = /home/database
public = no
writable = yes
第四步:启动Samba,加入开机自启
[root@node4 ~]# systemctl restart smb && systemctl enable smb
三、建立共享
3.1、Windows建立共享
此处输出:
1、弹出提示框输入正确的账号密码即可
2、账号密码是刚刚创建的,且用pdbedit建立的Samba用户
\\ip
成功看到下面的页面即可:
此处显示的名称应该是:
配置文件中[data] 这个名字,不是/home/data这个名字(恰好重名)
3.2、Linux建立共享
永久挂载:
#Linux客户端操作
[root@linuxprobe ~]# yum install cifs-utils
[root@node1 ~]# mkdir -p /data
#在node1上操作,加上下面的命令即可
[root@node1 ~]# vim /etc/fstab
//192.168.1.44/data /home/nfs/ cifs username=tzh,password=123456,sec=ntlmssp,rw,_netdev 0 0
#参数解释
//192.168.1.44/data #node4的ip,以及配置文件中[data] 这个名字(这个名字可以任意命名)
/home/nfs/ #本机要挂载的目录
cifs #超文本传输协议
username #用户名
password #密码
sec=ntlmssp #默认
rw #读写
_netdev #当我们挂载网络存储设备时由于/dev/sdb是一块网络存储设备,而iSCSI协议是基于TCP/IP网络传输数据的, 因此必须在/etc/fstab配置文件中添加上_netdev参数,表示当系统联网后再进行挂载操作,以免系统开机时间 过长或开机失败:
0 0 #0表示开机不检测硬盘
#最后执行
[root@node1 ~]# mount -a
#查看挂载
[root@node1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
//192.168.1.44/data 94G 4.9G 84G 6% /home/data
到此搭建完成!!!