SAMBA:
实现 区网中有windows 也有linux,要共享文件系统的话,用SAMB服务器
samba 也可以让linux上打印机成为打印机服务器
强调: 在unix like上面可以分享档案资料的filesystem是NFS
在windows上使用网上邻居所使用的文件系统成为CIFS
最初的主要目的:
沟通windows 与unix like 两个不同的作业平台
动作:
分享档案与打印机服务;
进行windows网络上的主机名解析(NETBIOS name)
可以提供用户登入SAMBA主机时的身份认证,以提供不同身份者的个别数据
可以进行装置的分享
使用的通讯协议: NetBLOS (SAMBA架构在NetBIOS协议上开发的)
最早只适合在局域网中,无法跨路由,理论上NetBIOS 也是无法跨越路由的
后期开发之后可以借助NetBIOS OVER TCP/IP技术实现跨路由的使用服务器提供的功能
这个TCP/IP 可以视为一个邮件传递系统,通过它实现跨路由
(但SAMBA现在用的比较广泛的还是在LAN中)
SAMBA 会启动两个进程
1, 取得对方主机的BetBIOS name 定位该主机所在
2, 利用对方主机给予权限存取可用资源
SAMBA 通过两支服务来控制这两个步骤,分别是:
nmbd: 管理工作组、NetBIOS name 等名称解析
利用 UDP 137,138
snmbd: 管理SAMBA 主机分享的目录、档案 打印机等、(文件共享)
TCP 139 445(不一定存在)
联机模式的介绍(peer/peer, domain model)
peer/peer (workgroup model对等模式)
每部计算机都可以独立运作 只是藉由网络将各个PC 链接在一起的一个架构
每部计算机都可以做为Client 与 Server
好处: 可以独立运作, 不受其他人影响
缺点: 不适合大的网域,因为需要知道所有计算机里的密码和帐号
适合的环境:1, 小型网域,
2 ,没有需要常常进行档案数据分享的网络环境
3, 计算机是用户的不是公用的
domain model (主控模式)
将所有的密码帐号都放置在一部主控计算机上(PDC),
################################################################################################
SAMBA 所需要的软件极其软件结构
samba : 提供SMB服务器所需的各项服务程序(smbd,nmbd),配置文件,开机默认选项等
samba-client: 提供linux作为客户端,所需的工具指令
samba-common: 提供server 和 client 都会使用到的数据
包括SAMB主配置文件(smb.conf) 语法检验指令(testparm)
这三个软件都需要安装
3.X
————————————————————————————————————————配置文件
/etc/samba/smb.conf samba的主配置文件
/etc/sysconfig/samba 提供启动smbd,nmbd时你还想要加入的相关服务参数
/etc/samba/smbusers 两个工作平台管理员和访客帐号不一致, 为了对应两者之间帐号关系,
/var/lib/samba/private/{passbd,tbd,secrets.tbd}
管理samba用户帐号和密码时会用到的数据库档案
/usr/share/doc/samba-<版本> SAMBA的使用手册
常用的脚本文件
服务器功能
/usr/sbin/{snmbd, nmbd}:
权限管理(smbd)和NetBIOS name查询(nmbd)两个服务程序
/usr/bin/{tdbdump, tdbtool}:
3.0版本之后,帐号和密码参数都使用数据库了。
tdbdump: 查看数据库内容; tdbtool 进入数据库接口直接手动修改帐号密码参数(安装tdb-tools软件)
/usr/bin/smbstatus:
显示samba联机状况 (PID 分享的资源, 使用的用户来源......)
/usr/bin/{smbpasswd,pdbedit}:
管理用户数据的(TDB数据库之后用的是pdbedit)
/usr/bin/testparm -v (显示详细的信息)
主要是检验配置文件的语法是否正确,
客户端功能
/sbin/mount.cifs
在win上, 我们可以设定网络驱动器机来链接到自己主机上
在linux上, 透过mount 挂载来将远程主机分享的档案与目录挂载到自己主机上
/usr/bin/smbclient
查看别台计算机所分享出来的目录与装置, 也可查看自己,看是否设定成功
/usr/bin/nmblookup
查看 netbios name 的名字是什么
smbtree 能够查到工作组与计算机名称的树状目录分布图
###################################################################################3
smb.conf 常用的设定项目
【global】 全局配置
log file = 登录档 放置的档案, 可以是一个变量
max log size = 登录档最大是多少kb , 超出被rotate掉
security = share user domain
1, 不需要密码。 2 。使用SAMBA服务器本身的密码数据库
3, SAMBA 是客户端之意, 需要-提供 passwd server = IP
encrypt passwds = YES 代表密码要加密
passdb backend = tdbsam 密码使用的数据库格式是tdbsam
load printers = yes 默认加载共享打印机
cups options = raw 打印的服务体系 (可不注意)
【share Definitions】共享定义
[printers] (共享打印机) 分享名称
comment = All Printers 目录注释
path = /var/spool/samba 共享资源路径名称
browseable = no 是否所有用户看到这个项目
guest ok = no 是否允许来宾帐号访问(匿名访问)
writable = no 是否可以写入
printable = yes 是否共享多有打印机
writelist = 用户 @群组 指定特定使用者可以进入
[homes] 定义不同的用户是否可以访问自己的家目录
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
可用的变量功能
%m 客户端Netbios 主机名
%M 客户端internet 主机名--hostname
%L SAMBA主机的NetBIOS 主机名
%H 用户的家目录
%U 目前登入烦人使用者的使用者名称
%g 登入的使用者的组名
%h 这部SAMBA主机的HOSTNAME
%I 客户端IP
%T 目前的时间和日期
为samba添加帐号命令
smbpasswd
-a 添加为当前samba上的帐号
-x 删除帐号
----linux共享windows上的共享文件用的命令-------
smbclicent
-L 指定Netbios name主机名(ip)
-U 指定用户名
-P 提示对方输入密码
转载于:https://blog.51cto.com/keleyingwu/1184276