一、Samba概述
1、概述
Samba是在Linux和Unix系统上实现SMB协议的一个免费软件,有服务器及客户端程序构成。SMB是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NETBIOS over TCP/IP”使得Samba不但能与局域网主机分享资源,还能与全世界的电脑分享资源。
2、协议
SMB(Server Message Block) 服务信息块协议
CIFS (Common Internet File System) 通用互联网文件系统
3、作用
1)分享文件与打印机服务
2)可以提供用户登入SAMBA主机时的身份认证
3)可以进行Windows网络上的主机名解析(Netbios name)
4、测试工具
testparm
-s 输出所有内容
二、安装
1、服务名:samba
2、Samba服务器的主要程序
smbd:提供对服务器中文件、打印资源的共享访问。(端口:139 445)
nmbd:提供基于NetBIOS主机名称的解析。(端口:137 138)
3、服务脚本
/etc/init.d/smb
4、主配置文件
/etc/samba/smb.conf
5、主配置目录
/etc/samba
三、配置
1、smb.conf文件的配置内容简介
[global]:全局配置
[homes]:用户目录共享设置
[printers]:打印机共享设置
[myshare]:自定义名称的共享目录设置
注释行:以“#”号开头的行
配置样例行:以“;”号开头的行
结合grep命令可以提取有效配置行
grep -v "^#" smb.conf | grep -v ";" | grep -v ^$
2、常见全局配置项的含义
workgroup:所在工作组名称
server string:服务器描述信息,一般修改默认值,以防Samba版本信息泄漏
security:安全级别,总共有四个级别:
share 匿名访问
user 本地Samba用户访问
Server 由其他服务器提供认证
domain 由域控制器提供认证(PDC)
log file:日志文件位置,“%m”变量表示客户机地址
max log size:日志文件的最大容量,单位为KB。当达到最大值则进行日志轮替
passwd backend:设置共享账户文件的类型
3、常见共享目录配置项的含义
comment:对共享目录的注释、说明信息
path:共享目录在服务器中对应的实际路径
browseable:该共享目录在“网上邻居”中是否可见
guest ok:是否允许所有人访问,等效于“public = yes”
writable:是否允许所有人可写,writable与write list 只能出现一个
read only:是否允许所有人只读
write list:拥有写权限的用户列表,可以直接加用户名,多个用户名之间用","号隔开,也可以使用@用户组的方式,设置用户组
四、匿名访问配置
[global]
workgroup = WORKGROUP #定义工作组
netbios name = wayen #定义Netbios名称,不可与工作组的名称相同
server string = my Samba server!! #服务器描述信息
log file = /var/log/samba/log.%m #日志存放位置
max log size = 50 #日志存放大小
security = share #安全级别为share,即匿名
passdb backend = tdbsam #共享账户文件的类型
load printers = yes #启动服务是加载打印机
cups options = raw #打印机启动为读写权限
[homes]
comment = home directories
browseable = no
writable = yes
[printers]
comment = all printers
path = /var/spool/samba
browseable = no
guest ok = no
wirtable = no
printable = yes
[movie] #自定义共享目录
comment = cang #目录描述
path = /cang #真正的目录路径
writable = yes #允许所有人可写
browseable = yes #查询可见
guest ok = yes #允许所有人访问
客户端测试
1)smbclient -L //IP或域名 #查看samba服务器共享的目录
2)smbclient //IP或域名/共享目录 #登录Samba服务器
get 下载
put 上传
四、本地用户验证
1、创建SAMBE用户
pdbedit -a -u 用户名(Linux系统本地用户)
smbpasswd -a -u 用户名
2、删除SAMBE用户
pdbedit -x -u 用户名
3、查看SAMBE用户
pdbedit -L
4、挂载SAMBE共享目录
1)临时挂载
mount -t cifs -o username=用户名,passwd=密码 原路径 目标路径
2)永久挂载
vim /etc/ftab
原路径 目标路径 cifs defaults,username=用户名,passwd=密码 0 0
5、ACL控制
hosts allow 允许IP访问
hosts deny 拒绝IP访问
EXCEPT 排除某个IP地址
eg: hosts deny 192.168.216. EXCEPT 192.168.216.15
#拒绝192.168.216网段的除了192.168.216.15之外的所有IP访问
6、SMB别名
vim /etc/samba/smbusers
原名 = 别名 (多个别名用空格隔开)
vim /etc/samba/smb.conf
username map = /etc/samba/smbusers #开启别名功能
7、字符集
display charset = utf8 #SAMBA服务器显示的字符集格式
unix charset = utf8 #UNIX客户端的字符集格式
dos charset = cp950 #WIN客户端的big5编码
8、常用变量
%I :显示客户端的IP地址
%H :显示家目录路径
%T :显示当前日期和时间
9、配置
[global]
workgroup = WORKGROUP #定义工作组
netbios name = wayen #定义Netbios名称,不可与工作组的名称相同
server string = my Samba server!! #服务器描述信息
log file = /var/log/samba/log.%m #日志存放位置
max log size = 50 #日志存放大小
security = share #安全级别为share,即匿名
passdb backend = tdbsam #共享账户文件的类型
load printers = yes #启动服务是加载打印机
cups options = raw #打印机启动为读写权限
[homes]
comment = home directories
browseable = no
writable = yes
create mode = 0664 #创建文件的权限为0664
directory mode = 0775 #创建目录的权限为0775
[printers]
comment = all printers
path = /var/spool/samba
browseable = no
guest ok = no
wirtable = no
printable = yes
[music] #自定义共享目录
comment = smbuser #目录描述
path = /aa #真正的目录路径
write list = zhangsan #允许所有人可写
browseable = yes #查询可见
guest ok = yes #允许所有人访问
10、客户端测试
1)smbclient -L //IP或域名 -U 用户名 #查看samba服务器共享的目录
2)smbclient //IP或域名/共享目录 -U 用户名 #登录Samba服务器
get 下载
put 上传