【Linux】Samba服务器超详细安装、配置(附带各种问题解决方式)

您所在的位置:网站首页 samba怎么访问 【Linux】Samba服务器超详细安装、配置(附带各种问题解决方式)

【Linux】Samba服务器超详细安装、配置(附带各种问题解决方式)

2023-12-23 06:49| 来源: 网络整理| 查看: 265

在嵌入式系统开发应用平台中,tftp、nfs和samba服务器是最常用的文件传输工具,tftp和nfs是在嵌入式Linux开发环境中经常使用的传输工具,samba则是Linux和Windows之间的文件传输工具。

samba是模仿Windows网上邻居的SMB的通讯协议,将Linux操作系统“假装成”Windows操作系统,通过网上邻居的方式来进行文件传输的。

 

虚拟机版本:VMware10

Linux操作系统版本:Red Hat Enterprise Linux 5

 

Samba服务器介绍

Samba是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件,以实现文件共享和打印机服务共享。 

Samba服务器组件

samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。 

Samba服务器相关的配置文件 /etc/samba/smb.conf  这是samba的主要配置文件,基本上仅有这个文件,而且这个配置文件本身的说明非常详细。主要的设置包括服务器全局设置,如工作组、NetBIOS名称和密码等级,以及共享目录的相关设置,如实际目录、共享资源名称和权限等两大部分。/etc/samba/lmhosts  早期的 NetBIOS name 需额外设定,因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 檔。 事实上它有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name,因此这个档案不设定也无所谓。/etc/sysconfig/samba  提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。/etc/samba/smbusers  由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定/var/lib/samba/private/{passdb.tdb,secrets.tdb}  管理 Samba 的用户账号/密码时,会用到的数据库档案;/usr/share/doc/samba-  这个目录包含了 SAMBA 的所有相关的技术手册喔!也就是说,当你安装好了 SAMBA 之后,你的系统里面就已经含有相当丰富而完整的 SAMBA 使用手册了!值得高兴吧! ^_^,所以,赶紧自行参考喔!

至于常用的脚本文件案方面,若分为服务器与客户端功能,则主要有底下这几个数据:

/usr/sbin/{smbd,nmbd}:服务器功能,就是最重要的权限管理 (smbd) 以及 NetBIOS name 查询 (nmbd) 两个重要的服务程序;

/usr/bin/{tdbdump,tdbtool}:服务器功能,在 Samba 3.0  以后的版本中,用户的账号与密码参数已经转为使用数据库了!Samba 使用的数据库名称为 TDB (Trivial DataBase)。  既然是使用数据库,当然要使用数据库的控制指令来处理啰。tdbdump 可以察看数据库的内容,tdbtool 则可以进入数据库操作接口直接手动修改帐密参数。不过,你得要安装 tdb-tools 这个软件才行;

/usr/bin/smbstatus:服务器功能,可以列出目前 Samba 的联机状况, 包括每一条 Samba 联机的 PID, 分享的资源,使用的用户来源等等,让你轻松管理 Samba 啦;

/usr/bin/{smbpasswd,pdbedit}:服务器功能,在管理 Samba 的用户账号密码时, 早期是使用 smbpasswd 这个指令,不过因为后来使用 TDB 数据库了,因此建议使用新的 pdbedit 指令来管理用户数据;

/usr/bin/testparm:服务器功能,这个指令主要在检验配置文件 smb.conf 的语法正确与否,当你编辑过 smb.conf  时,请务必使用这个指令来检查一次,避免因为打字错误引起的困扰啊!

/sbin/mount.cifs:客户端功能,在 Windows 上面我们可以设定『网络驱动器机』来连接到自己的主机上面。在 Linux 上面,我们则是透过 mount (mount.cifs) 来将远程主机分享的档案与目录挂载到自己的 Linux 主机上面哪!

/usr/bin/smbclient:客户端功能,当你的 Linux主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用 smbclient来查看啦!这个指令也可以使用在自己的 SAMBA 主机上面,用来查看是否设定成功哩!

/usr/bin/nmblookup:客户端功能,有点类似 nslookup 啦!重点在查出 NetBIOS name 就是了

/usr/bin/smbtree:客户端功能,这玩意就有点像 Windows  系统的网络上的芳邻显示的结果,可以显示类似『靠近我的计算机』之类的数据, 能够查到工作组与计算机名称的树状目录分布图!

 

安装Samba

 

首先确认一下自己的Linux是否安装了Samba,使用命令:

[root@localhost ~]# rpm -qa | grep samba

其中:samba、samba-common、samba-client三个程序是必须的。

如果没有安装,有两种方式可以安装:

第一种方式:yum安装

yum是一个集与查找,安装,更新和删除程序的Linux软件。它运行在RPM包兼容的Linux发行版本上,如:RedHat、Fedora、SUSE、CentOS、Mandriva。

yum install -y samba 第二种方式:安装包安装

安装包都在光盘里,首先需要挂载:

[root@localhost ~]# mount /dev/cdrom /mnt

这个时候,会出现一个问题:

mount: block device /dev/sr0 is write-protected, mounting read-only

提示信息说,虚拟机挂着光驱光驱时提示只读。用以下命令可解决该报错:

mount -o remount,rw /dev/cdrom /mnt

此时,我们会发现,原本空的文件夹/mnt现在多了很多的文件。

在/mnt/Server文件夹中,会能找到关于Samba的安装包:

找到安装包之后,就是安装Samba了(只需要安装自己没有的那个就行了)。使用命令:

rpm samba-3.0.25b-0.el5.4.i386.rpm rpm samba-client-3.0.25b-0.el5.4.i386.rpm rpm samba-commons-3.0.25b-0.el5.4.i386.rpm

安装完之后,再使用命令验证一下是否安装完成:

[root@localhost ~]# rpm -qa | grep samba

 

配置Samba 修改配置文件

samba服务器最主要的配置文件其实只有一个,就是/etc/samba/samba.conf,这个配置文件可以分为两个部分,一个部分是全局参数,一部分是共享资源相关参数。

#1.全局部分参数设置: [global] #与主机名相关的设置 workgroup = zkhouse


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3