最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
linux中Samba服务器的搭建理论篇
时间:2022-06-24 15:13:23 编辑:袖梨 来源:一聚教程网
一、Samba与NFS、ftp
在了解Samba服务之前,需要先了解一下cifs协议(Common Internet File System),该协议最早是微软搞出来的一个协议。cifs 协议最早实现的是window主机之间的文件共享与打印共享,并不支持在linux上运行,samba是由Andrew Tridgell工程师通过逆向工程实现的一个cifs协议软件。通过该包可以实现windows和linux之间的文件共享。这和NFS的走的路刚好相反,NFS最初只支持在类unix系统上运行,后被windows也学了去,所以OS并不能简单的说谁好谁坏,很多东西都是互相借鉴的。
Samba与NFS较ftp的一个好处就是可以将远程盘或挂载点映射到本机上,每次可以像本地编辑一样编辑文件。而ftp需要先下载到本地修改后再上传。
二、samba相关包与程序
1、samba程序包
目前samba 在源里默认的是samba 4.x版本,主要使用的相关软件包有:
# yum list|grep samba samba.x86_64 4.1.12-21.el7_1 @base samba-common.x86_64 4.1.12-21.el7_1 @base samba-libs.x86_64 4.1.12-21.el7_1 @base samba-client.x86_64 4.1.12-21.el7_1 base samba-python.x86_64 4.1.12-21.el7_1 base samba-winbind.x86_64 4.1.12-21.el7_1 base samba-winbind-modules.x86_64 4.1.12-21.el7_1 base
samba服务相关的配置主要是samba、samba-common、samba-client三个包和cifs-utils包,具体三个包的作用如下:
samba:主要提供了smb服务所需的格项服务程序如smbd和nmbd及与samba相关的eventlogadm程序;
samba-client:该包主要提供了samba client挂载使用的相关程序,如smbpasswd、smbtree等;
cifs-utils:mount挂载时需要该包来支持cifs协议,不安装该包就没有mount.cifs命令。使用mount挂载时也会有报错;
smba-common: 该包提供了samba服务的主配置文件smb.conf、lmhosts文件、 pdbedit用户相关和testparm语法检查指令等。
2、samba相关文件与程序
/etc/samba/smb.conf:samba服务的主配置文件;
/etc/samba/lmhosts:NetBIOS Name与IP的对应关系,做用类似于/etc/hosts,一般无需配置;
/etc/sysconfig/samba: smbd, nmbd服务自定义参数配置文件;
/etc/samba/smbusers:windows与linux的用户不一致,可以通过该文件进行对应映射,在新版本中默认不存在,代替的是username map参数,通过该参数可以指定具体的映射文件;
/var/lib/samba/private/{passdb.tdb,secrets.tdb}:samba用户和密码数据库文件;
/usr/bin/{tdbdump,tdbtool}: Samba 3.0以后,默认使用tdb库(Trivial DataBase),这两个命令用于查看和操作tdb库,不过查看出的结果有点类似于16进制的数据,一般不使用,需安装 tdb-tools 包;
/usr/bin/{smbpasswd,pdbedit}:smbpasswd命令用于创建samba用户和修改密码,类型于passwd命令的功能。Samba 3.0后使用pdb库,pdbedit命令为新版本中的samba用户信息管理命令;
/usr/bin/testparm:用于测试smb.conf语法的正确性。
/usr/bin/smbclient:可以交互式管理samba共享的资源,有点类似于ftp命令;
/usr/bin/nmblookup:Netblos查询工具,类似于nslookup的功能;
/usr/bin/smbtree:查看网络中的工作组与主机名等,有点类似于windows中的网上邻居
。
使用示例:
1、tdbdump
# tdbdump passdb.tdb { key(13) = "RID_000003e8 0" data(6) = "usera 0" } { key(11) = "USER_usera 0" data(182) = " 0 0 0 07FA9T|7FA9T| 0 0 0 0bdF5U 0 0 0 07FA9T| 6 0 0 0usera 0 4 0 0 0WWW 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0E8 3 0 0 1 2 0 0 0 0 0 010 0 0 0E581 F<99AE*BB222ED84XA613 9 0 0 0 010 0 0 0A8 015 0 0 0