一、Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。
二、安装Samba服务
直接yum安装
yum install samba samba-client
启动并查看Samba
systemctl start smb nmb #NMB对客户端提供NetBIOS服务
systemctl status smb nmb
三、配置Samba服务
vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP #设定Samba Server所要加入的工作组或域
server string = Samba Server Version %v #设定注释,宏%v表示显示Samba的版本号
netbios name = abc #设置Samba Server的NetBIOS名称
map to guest = bad user #开启匿名访问
#----------------- Logging Options [日志选项]----------------------------
log file = /var/log/samba/log.%m #设置日志文件存储位置及名称,宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件
max log size = 50 #设置Samba Server日志文件的最大容量,单位为KB,0代表不限制
#---------------- Standalone Server Options[独立运行进程] ---------------
security = share #共享级别:共享目录只能被授权的用户访问
passdb backend = tdbsam #建立安全账户管理数据库
#----------------- Printing Options[打印选项]----------------------------
# load printers = yes #设置是否在启动Samba时共享打印机
# cups options = raw #通用unix打印选项
#================== Share Definitions[共享参数]====================
[homes] #设置用户宿主目录
comment = Home Directories #描述该共享:家目录
browseable = no #指定该共享是否可以浏览
writable = yes #指定该共享路径是否可写
[printers] #设置打印机宿主目录
comment = All Printers #描述:所有打印机
path = /var/spool/samba
browseable = no
guest ok = no #指定该共享是否允许guest账户访问
writable = no
printable = yes #指定是否可打印
[public]
comment = Public Stuff #定义说明信息
path = /home/samba #共享目录路径
public = yes #指定该共享是否允许guest账户访问
writable = yes
printable = no
write list = abc #允许写入该共享的用户
四、测试
1.在windows下输入\192.168.10.128\public访问
2.在Linux下输入smbclient //192.168.10.128/public访问
五、其他
1.配置只允许个别用户访问
vim /etc/samba/smb.conf添加如下:
[data]
comment = data
path = /share/data
valid users = xyz
write list = xyz
printable = no
create mask = 0755
directory mask = 0755
建立共享目录、添加相应用户和组
mkdir -p /share/data
groupadd xyz
useradd xyz -s /sbin/nologin
cd /share/data
echo "12345" > abc.txt
pdbedit -a -u xyz #新建Samba用户
pdbedit -L #查看Samba用户列表
systemctl restart smb nmb #重启Samba
可能出现的问题:能下载不能上传
setfacl -m u:xyz:rwx /share/data/ #赋予用户写权限
Linux进行挂载
yum install -y cifs-utils #网络文件共享系统套件
mkdir /mnt/samba
mount -t cifs //192.168.10.xxx/data /mnt/samba -o username=xyz
Linux实现自动挂载
vim /etc/fstab #添加如下
//192.168.10.xxx/data /mnt/samba cifs credentials=/etc/samba/xyz.passwd 0 0
vim /etc/samba/xyz.passwd #防止密码泄露,所以另建文件
username=xyz
password=abcdef
chmod og=--- /etc/samba/xyz.passwd #设置该密码文件权限
umount /mnt/samba #卸载
mount -a #挂载fstab下的所有选项
ls /mnt/samba/