目录
序言:Samba是在Linux和UNIX系统上实现SMB合同的一个免费软件,由服务器及顾客端程序构成。起初SMB合同是windows和windows(网上邻居)之间分享资源的一种合同。Linux找到谷歌linux网络打印机服务器,也想把该合同用在window和Linux的文件共享上,可谷歌没有同意,于是Linux通过逆向方式实现了SMB合同,为了与SMB分辨并将其起名为SAMBA合同。
下边开始samba服务器的安装及使用吧
一、samba简介
Samba是在Linux和UNIX系统上实现SMB合同的一个免费软件,由服务器及顾客端程序构成。SMB(ServerMessagesBlock,信息服务块)是一种在局域网上共享文件和复印机的一种通讯合同,它为局域网内的不同计算机之间提供文件及复印机等资源的共享服务。SMB合同是顾客机/服务器型合同,顾客机通过该合同可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOSoverTCP/IP”使得Samba不但能与局域网路主机分享资源,能够与全世界的笔记本分享资源。
二、samba服务的特征
smaba最大的特征就是可以用于linux和windows之间进行文件共享和复印机共享samba不仅仅可以用于linux和windows之间
samba还可以用于两台linux之间共享
因为linux平台诞生了一个更好的工具,nfs网路文件共享系统linux网络打印机服务器,专门用于linux之间文件数据共享●因此samba更多是使用linux和windows之间
三、samba的主要应用文件共享(最主要作用)复印服务器samba登录时身分验证因为samba基于Netbiosredhat linux 下载,所以可以进行windows的主机名解析四、常见文件服务器软件的比较
服务名称
使用范围
服务器端
顾客端
局限性
FTP
局域网和网段
Windows
Linux
Windows
Linux
难以直接在服务器端更改数据
Samba
外网
Windows
Linux
Windows
Linux
只能在外网使用
NFS
外网和网段
Linux
Linux
只能在Linux之间使用
五、samba服务搭建
实验目的
在linux虚拟机上(centos7环境)搭建一个samba服务而且在windows顾客端访问
1、安装Samba服务
yum install -y samba //安装samba 服务
yum list samba //列出软件包的信息
yum remove samba //卸载软件包
yum check-update samba //检查是否有可更新的软件包
yum update samba //更新samba软件包
2、启动服务
systemctl start smb.service
systemctl enable smb.service
systemctl stop firewalld
setenforce 0
3、创建用户
groupadd test
useradd -M liy -s /sbin/nologin/ -g test
useradd -M yong -s /sbin/nologin/ -g test
id liy
id yong
4、pdbebit参数说明
-a, --create 新建samba用户
-r, --modify 修改samba用户
-x, --delete 删除samba用户
-L, --list 列出全部samba用户,读取passdb.tdb数据库文件
-v, --verbose 显示详细信息
-c, --account-control=STRING 账户控制值
-w, --smbpasswd-style 以smbpasswd格式输出
-u, --user=USER 使用的用户
-N, --account-desc=STRING 设置账户描述
-f, --fullname=STRING 设置全名
-h, --homedir=STRING 设置家目录
-D, --drive=STRING 设置家设备
-S, --script=STRING 设置登陆脚本
-p, --profile=STRING 设置配置文件路径
-I, --domain=STRING 设置用户域名
-U, --user SID=STRING 设置用户SID或RID
-M, --machine SID=STRING 设置设备SID或RID
-m, --machine 账户是一个设备账户
-b, --backend=STRING 使用不同的passdb作为默认后端
-i, --import=STRING 指定后段导入用户账户
-e, --export=STRING 导出用户账户到指定后端
--policies-reset 恢复默认策略
-P, --account-policy=STRING 帐户策略的值(如最大密码有效期)
-C, --value=LONG 设置账号策略值
--force-initialized-passwords 强制初始化passdb后端
-z, --bad-password-count-reset 重置错误密码
-Z, --logon-hours-reset 重置登陆时间
--time-format=STRING 时间参数的格式
-t, --password-from-stdin 从标准输入获取密码
-K, --kickoff-time=STRING 设置开始时间
--set-nt-hash=STRING 从nt-hash设置密码
-d, --debuglevel=DEBUGLEVEL 设置debug级别
-s, --configfile=CONFIGFILE 使用备用配置文件
-l, --log-basename=LOGFILEBASE 设置日志文件的基本名称
-V, --version 输出版本号
--option=name=value 从命令行设置smb.conf选项
-?, --help 显示帮助信息
--usage 显示简要的使用信息
5、修改配置文件
编辑配置文件深度linux,添加一个以test作为网路共享文件名的共享目录。
[test] #共享文件名称(也就是客户端访问时可以看到的那个名字)
comment = this is test #共享文件夹的描述
path = /home/ceshi #共享文件夹路径
public = yes #是否允许guest账户访问
writable =yes #是否有写权限
directory mask = 0777 #默认创建目录权限
create mask = 0777 #默认创建文件权限
valid users = @test,root #设置允许访问共享目录的用户@后跟组名,不写此行就对所有用户开放
write list = @test,root #设置有写权限的用户@后面跟的是组名
browseable = yes #该指定共享目录可浏览
available = yes #该指定共享资源可使用
testparm可以拿来测量配置文件中是否有句型错误
testparm
6、创建共享文件夹
mkdir ceshi
cd ceshi/
echo "hello" > 1.txt
mkdir yy
chmod 777 ceshi/
systemctl restart smb.service 启动服务
systemctl reload smb.service 加载配置文件
7、设置samba用户登录密码
smbpasswd -a liy # 将本地用户跟samba用户进行映射
smbpasswd -a yong
pdbedit -a -u liy
pdbedit -a -u yong
pdbedit -L #查看加入samba服务的用户
六、windows顾客端验证
win+R\192.168.58.20
成功登录
在顾客端上创建文件测试
测试成功
七、总结
Samba是按照SMB合同实现的,主要用于Windows和Linux之间共享资源。139端口是在NBT合同基础上的,关掉NBT合同139就废了。而445端口是在TCP/IP合同基础上,现今网路中应当极少有不使用TCP/IP合同的了。最后假如主机两种合同同时支持的话(例如windowsxp之后的操作系统)这么共享访问时侯的端口使用优先级为:445>139,所以现今UNC路径访问ip地址都是使用445端口,而访问主机名方式是使用139端口(现今基本不用了)。
关掉139端口的方式:“网络联接/属性/TCPIP合同/属性/中级/WINS中设置启用或则禁用NBT(NetBIOSoverTCP/IP)
关掉445端口的方式:防火墙阻塞445端口或则禁用server服务都可以。