一:什么是samba
samba是linux、unix与windows之间进行交互操作的软件组件,它是基于gpl协议的自由开源软件,通过smb/cifs协议为支持该协议的操作系统提供安全、稳定、快速的文件与打印服务;
二:安装与配置
1.所需安装包
samba(服务器软件包)
samba-client(客户端软件包)
samba-common(公共软件包)
cifs-utils
2.主要程序
smbd:提供对文件及打印资源的共享访问
监听端口 tcp 139 tcp 445
nmbd:提供基于netbios协议的主机名解析
监听端口 udp 137 udp 138
3.系统服务脚本
/etc/init.d/smb
4.主配置文件
/etc/samba/smb.conf
[global] //定义全局策略
workgroup = mygroup /工作组名称
server string = samba server version /服务器描述
security = user / 重要!!!默认使用的安全级别(share:匿名共享 user:用户认证)
passdb backend = tdbsam /账户与密码存储方式
[homes] //共享名称
browseadble = no //共享目录是否可以被浏览
writable = yes //共享目录是否可以进行写操作
[printers] //打印机共享
comment = all printers //共享描述信息
path = /var/spool/samba //打印机共享池
browseable = no //是否所有人可见
guest ok = no // 是否允许匿名访问
writable = no //
printable = yes //
[baitao] //自定义共享名
comment = this my love //描述
path = /usr/src //共享目录
public = yes //是否所有人可用,等效于getst ok
writable = yes //是否可写,与read only = yes作用相反
5.配置文件检查工具
testparm
三、验证
1.查询
smbclient -l 服务器IP
2.连接
smbclient //服务器地址/共享名
smbclient -u 用户 //服务器地址/共享名
3.挂载
mount [-t cifs] //服务器ip/共享名 挂载点
mount -o username=用户,password=密码 //服务器ip/共享名 挂载点
.
四.安全
1.验证登录
共享账号
新建共享账号时,必须先有同名的系统账号
共享账号的密码是独立的
访问共享时以共享账号/密码登陆、权限取决于对应的系统账号
默认使用tdb数据格式
存放位置:/etc/samba/passdb.tdb
valid users = 用户,用户 //共享账号列表
write list = 用户,用户 //哪些用户有写的权限
directory mask = 0755 //上传文档的默认权限
create mask = 0644
pdbedit [选项]... [共享账号名]
-a:将指定的系统用户添加为共享账号
-L:查看共享账号信息
-x:删除指定的共享账号
若要重高密码,可执行smbpasswd 用户名
2.账号别名映射
在全局中添加以下语句
username map = /etc/samba/smbusers
vim /etc/samba/smbusers
liufu = baitao
3访问地址限制
多用在[global]全局配置
hosts allow = 客户机IP
hosts deny = 客户机ip
注:以空格分隔多个地址
如,允许网段192.168.4.0/24 、10.0.0.0/8访问
hosts allow = 192.168.4. 10.
五.注意事项
1.使用匿名登录时,不要输入密码,直接回车确认
windows
\\服务器ip\共享名