Linux Samba服务器超详细安装配置(附问题解决)

目录
  • Samba服务器介绍
    • Samba服务器组件
    • Samba服务器相关的配置文件
  • 安装Samba
    • 第一种方式:yum安装
    • 第二种方式:安装包安装
  • 配置Samba
    • 修改配置文件
    • 添加用户并设置密码
    • 重启Samba服务器
  • 登录Samba
  • 问题汇总及补充
    • 网络选择
    • 防火墙问题
    • 权限问题
    • 无法访问
    • 自动连接

在嵌入式系统开发应用平台中,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  <==工作组名称
        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服务器安装配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Linux中samba服务器的搭建教程

    使用的vmware12虚拟机安装的centos6.8和物理机上的windows10,实现在windows10 上访问CentOs上的samba服务. 一.先查看系统中是否安装有samba服务相关的软件包 查看到我的linux中没有安装samba相关的软件包,接下来进行安装几个相关的软件包: samba-3.6.9-151.el6.x86_64 //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替 samba-common-3.6.9-151.el6.x86_64 //主要提

  • Linux中搭建完整的samba服务器全攻略(centos版)

    前言 smb是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通.SMB最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口"中断13"改造为网络文件系统. smb服务简介 后来微软对这个发展进行了重大更改,这个更改后的版本也是最常见的版本.微软将SMB协议与它和3Com一起发展的网络管理程序结合在一起,并在Windows for Workgroups和后来的Windows版本中不断加入新的功能. SMB一开始的设

  • linux下samba服务器安装配置方法

    linux中samba服务器的安装及其配置,供大家参考,具体内容如下 第一步:下载samba 命令:apt-get install samba apt-get install cifs-utils apt-get install samba-common [注]可以使用镜像源来安装,这样速度比较快一点.不用也完全没问题.如果要用镜像源需修改文件:/etc/apt/sources.list,换为镜像源地址即可 可能遇到的问题: 这是因为DNS服务器错误,需要修改文件:/etc/resolv.con

  • Linux Samba服务器超详细安装配置(附问题解决)

    目录 Samba服务器介绍 Samba服务器组件 Samba服务器相关的配置文件 安装Samba 第一种方式:yum安装 第二种方式:安装包安装 配置Samba 修改配置文件 添加用户并设置密码 重启Samba服务器 登录Samba 问题汇总及补充 网络选择 防火墙问题 权限问题 无法访问 自动连接 在嵌入式系统开发应用平台中,tftp.nfs和samba服务器是最常用的文件传输工具,tftp和nfs是在嵌入式Linux开发环境中经常使用的传输工具,samba则是Linux和Windows之间的

  • Linux下源码编译安装配置SVN服务器的步骤分享

    说明: SVN(subversion)的运行方式有两种: 一种是基于Apache的http.https网页访问形式: 还有一种是基于svnserve的独立服务器模式. SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件FSFS存储数据. 由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全. 实现目的: 以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器. 具体操作: 操作系统

  • Linux系统实现ansible自动化安装配置httpd的方法

    1.使用ansible的playbook实现自动化安装httpd 1)首先配置好ansible的hosts文件,让其对应主机能够受ansible控制 提示:我们在主机清单上配置了所管控的主机地址,但是直接用ansible的ping模块去探测主机的存活情况,却显示权限拒绝.从提示上说让我们要指定用什么验证.默认情况ansible是通过ssh的key验证的,所以我们在ansible的主机清单中配置了管控主机的ip是不够的,还要配置ssh基于KEY验证 2)配置管控主机能够基于SSH key验证 [r

  • Linux平台Zabbix Agent的安装配置方法

    这里简单总结一下Linux平台Zabbix Agent的安装配置,实验测试的Zabbix版本比较老了(Zabbix 3.0.9),不过版本虽然有点老旧,但是新旧版本的安装步骤.流程基本差别不大.这里的总结仅仅当成一个操作手册,后续会更新或添加部分内容. Linux版本众多,下面文档仅仅在RHEL.CentOS几个版本测试过.不同版本可能安装等有所差别,后续再补充完善. 1:首先检查zabbix_server的版本 # zabbix_server --version zabbix_server (

  • 最新版Git2.29.2超详细安装流程(图文详解)

    一.官网下载Git 选择需要的 Mac.Window.Linux/Unix 版本 Git官网入口:点我下载 二.安装流程 流程如下 安装结束 一起学习进步,加油吧少年~ (如果安装过程出现其他问题,大家可以留言一起解决) 到此这篇关于最新版Git2.29.2超详细安装流程(图文详解)的文章就介绍到这了,更多相关Git2.29.2安装内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • BurpSuite超详细安装和基础使用教程(已破解)

    目录 Burp Suite如何安装 在打开我们的环境变量 Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击. 它主要用来做安全性渗透测试,可以实现拦截请求.Burp Spider爬虫.漏洞扫描(付费)等类似Fiddler和Postman但比其更强大的功能.那么我们开始安装教程 先附上下载链接: 百度网盘下载地址: 链接: https://pan.ba

  • windows系统下SQL Server 2008超详细安装教程

    目录 1.解压文件后,双击setup.exe安装文件 2.打开后点击界面左侧的[安装],然后点击右侧的[全新SQL Server 独立安装或向现有安装添加功能] 3.进入[SQL Server 2008 安装程序]界面,首先是[安装程序支持规则] 4.无异常后点击“确定” 5.进入“产品密钥”页面 6.阅读软件许可条款,选择我接受许可条款,否则将无法使用此软件,点击下一步 7.点击安装 8.安装成功后点击下一步 9.点击“全选”并下一步 10.进入[实例配置],全部选择默认,点击[下一步] 11

  • python3在各种服务器环境中安装配置过程

    1.在服务器环境中安装 centos yum install python3X[X代表版本号] ubuntu apt-get install python3.X[X代码小版本号] 源码包编译安装 步骤1.首先,通过apt在终端中运行以下以下命令,确保所有系统软件包都是最新的. sudo apt update sudo apt upgrade sudo apt install software-properties-common 步骤2.在Ubuntu 20.04上安装Python 3.9. 从源

  • 小白教程! Linux服务器上JDK安装配置方法

    本文实例为大家分享了Linux上JDK安装配置方法,供大家参考,具体内容如下 一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤前提:需要卸载自己Linux上的jdk rpm-qa| grepjdk 会显示你所有包含jdk这个字符串的安装包 rpm-e--nodeps对应的每个包名 会卸载对应的包 之后如果java -version显示 就是卸完了. 我之前是装过jdk1.7的,所以我需要卸载 ,没装过

  • VMWare linux mysql 5.7.13安装配置教程

    本文为大家分享了VMWare linux安装mysql 5.7.13的教程,供大家参考,具体内容如下 1.基础环境说明 虚拟机:VMWare 操作系统:linux 数据库版本:mysql 5.7.13 社区版(别问为什么不装企业版,因为企业版要钱) 背景:虚拟机可以连上外网 2.摸底 查看linux上是否已经安装了mysql ① 启动服务service mysqld start 没有安装,则提示 ② 查看服务是否存在linux上chkconfig --list mysqld 没有安装,则提示 3

随机推荐