承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

安装配置:Linux Samba服务器安装配置及问题处理

管理员 2023-08-18 08:08:40 互联网圈 0 ℃ 0 评论 13311字 收藏

在嵌入式系统开发利用平台中,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⑶.0.25b-0.el5.4.i386.rpm
rpm samba-client⑶.0.25b-0.el5.4.i386.rpm
rpm samba-commons⑶.0.25b-0.el5.4.i386.rpm

安装完以后,再使用命令验证一下会不会安装完成:

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

配置Samba

修改配置文件

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

#1.全局部份参数设置:
[global]
        #与主机名相关的设置
        workgroup = zkhouse  <==工作组名称
        netbios name = zkserver   <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name一定要唯一
        serverstring = this is a test samba server <==说明性文字,内容无关紧要
        #与登录文件有关的设置
        log file = /var/log/samba/log.%m   <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
        max log size = 50      <==日志文件最大的大小为50Kb
        #与密码相关的设置
        security = share       <==表示不需要密码,可设置的值为share、user和server
        passdb backend = tdbsam
        #打印机加载方式
        load printer = no <==不加载打印机
-----------------------------------------------------------
#2.同享资源设置方面:将旧的注释掉,加入新的
#先取消[homes]、[printers]的项目,添加[temp]项目以下
[temp]              <==同享资源名称
        comment = Temporary file space <==简单的解释,内容无关紧要
        path = /tmp     <==实际的同享目录
        writable = yes    <==设置为可写入
        browseable = yes   <==可以被所有用户浏览到资源名称,
        guest ok = yes    <==可让用户随便登录

也就是说,将上面“#2同享资源设置方面”加入到配置文件的最后便可。

添加用户并设置密码

设置账号用于登录samba服务器,同时并设置密码。具体命令:

[root@localhost ~]# useradd sambauser
[root@localhost ~]# smbpasswd -a sambauser
New SMB password:
Retype new SMB password:

重启Samba服务器

[root@localhost ~]# /etc/init.d/smb restart

如果这段命令没法运行,就是Samba没有正确安装的缘由。

登录Samba

在Windows和Linux网络都畅通的情况下,在Windows下登录Samba服务器。使用命令查看Samba的IP地址:

[root@localhost ~]# ifconfig

在Windows的运行,输入\\223.3.119.170(Samba对应的IP地址):

这个时候会弹出登录界面,直接输入之前设置的登录账号和密码就好了。

问题汇总及补充

之前Samba的安装和配置都是一步一步来的,没有甚么问题。但是很多情况下,就是最后在Windows的运行中,输入了\\IP地址以后,没有任何反应。这是最麻烦的地方,由于完全不知道是甚么缘由致使的。下面提供几个可能出问题的地方:

网络选择

在配置Samba服务器的时候,网络选择为bridge桥连接。

这是由于:要保证Linux下的IP和Windows下的IP处于同一网段中,并且保证相互可以ping通。

怎样验证?

在Windows的命令行中,输入命令ipconfig:

同时在Linux中输入命令ifconfig(两个命令不一样,需要注意):

可以看到:两个IP地址223.3.119.239和223.3.119.170之间前3个都是一样的,只有最后一个区别,这就保证了在同一网段。如果前3位区别,可在Linux中使用命令:

[root@localhost ~]# ifconfig eth0 223.3.119.130

只需要保证只有最后一个区别便可。

接下来验证Windows和Linux之间的ping通,在Windows命令行中输入ping Linux的IP地址

结果如果不是timeout,就代表二者之间ping通。

防火墙问题

如果防火墙不关闭,Windows和Samba之间的连通可能会被阻挡。

Windows上关闭防火墙:控制面板->系统和安全->Windows防火墙->打开或关闭Windows防火墙;

Linux上关闭防火墙:

[root@localhost ~]# setenforce 0
[root@localhost ~]# service iptables stop

记得要重启Samba服务器。

权限问题

可能会出现权限不够的问题,修改你想要的那个文件的权限。

[root@localhost ~]# chmod 777 /home

没法访问

如果用windows访问samba,跳出以下对话框的毛病:

没法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您会不会有访问权限。

不允许一个用户使用一个以上用户名与一个服务器或同享资源的多重连接。中断与此服务器或同享资源的所有连接,然后再试一次……或直接重启Windows。

怎样断开连接(即退出Samba服务器)呢?

在Windows的命令行中输入:

net use * /delete /y

自动连接

使每次打开Linux自动运行smba服务器:

在终端中输入setup->system service->找到smb,按下空格,即可选中->退出完成(注意切换用tab键)。

如果还有甚么问题,也能够参考连接: 【Linux】samba服务器的安装和配置,159 samba 没法访问。您可能没有权限使用网络资源 net use命令。

到此这篇关于安装配置:Linux Samba服务器安装配置及问题处理的文章就介绍到这了,更多相关Linux Samba服务器安装配置内容请搜索之前的文章或继续浏览下面的相关文章希望大家以后多多支持!

文章来源:丸子建站

文章标题:安装配置:Linux Samba服务器安装配置及问题处理

https://www.wanzijz.com/view/72657.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信