【Linux】samba服务器的安装和配置

1.安装samba(rpm包安装)

  首先,检查一下系统中有没有安装samba的RPM包。输入rpm -qa|grep samba没有显示,则表示samba没有安装。

  输入yum install samba-3.5.10-125.el6.i686.rpm安装samba

samba安装完成!

2.samba相关配置文件

(这部分内容来自鸟哥的私房菜)

与samba服务器相关的配置文件有:

  1. /etc/samba/smb.conf

    这是samba的主要配置文件,基本上仅有这个文件,而且这个配置文件本身的说明非常详细。主要的设置包括服务器全局设置,如工作组、NetBIOS名称和密码等级,以及共享目录的相关设置,如实际目录、共享资源名称和权限等两大部分。

  2. /etc/samba/lmhosts

    早期的 NetBIOS name 需额外设定,因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 檔。 事实上它有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name,因此这个档案不设定也无所谓。

  3. /etc/sysconfig/samba

    提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。

  4. /etc/samba/smbusers

    由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定

  5. /var/lib/samba/private/{passdb.tdb,secrets.tdb}

    管理 Samba 的用户账号/密码时,会用到的数据库档案;

  6. /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

    系统的网络上的芳邻显示的结果,可以显示类似『靠近我的计算机』之类的数据, 能够查到工作组与计算机名称的树状目录分布图!

3.启动samba服务器

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

  samba的两个服务smbd和nmbd都是stand alone服务,直接输入  

service smb start

service nmb start

即可启动服务,设置开机启动也很简单,输入

chkconfig smb on

chkconfig nmb on

即可设置开机启动。

我们来检查一下启动和开机启动是否设置成功

输入 chkconfig --list |grep mb

可见开启自动启动已经设置成功了。

输入service nmb status; service smb status

可见服务已经启动了。

4.例子1:一个不需要密码的共享

1.配置smb.conf文件

  前面已经说过,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.用testparm检查smb.conf配置文件语法设置的正确性

输入testparm检查smb.conf是否有错误

上图第五行显示,loaded service file OK.说明配置文件没有问题。

检查完毕后,输入service smb restartservice nmb restart重启samba服务。

3.本机测试

  假设用本机作为客户端来测试,我们可以在本机上通过smbclient来处理,首先我们在命令行输入:

smbclient

  如果系统安装了smbclient软件包,那么会列出smbclient命令的使用方法,如果没有安装,则会报错,找不到命令,那么需要安装smbclient软件包,然后重试。

  搭建本地yum源,输入yum install samba-client-3.5.10-125.el6.i686.rpm安装smbclient软件包。

  

 安装完成后,再次输入smbclient测试

 

[[email protected] ~]# smbclient -L [//主机或IP] [-U 使用者账号]
选项与参数:
-L :仅查阅后面接的主机所提供分享的目录资源;
-U :以后面接的这个账号来尝试取得该主机的可使用资源

输入smbclient -L //127.0.0.1

然后,我们把分享的目录挂载到某一个目录下,输入mount -t cifs //127.0.0.1 /home/test,然后跳到这个目录查看文件。

注意:我们进入test,身份会被压缩成为nobody,而不再是root用户了。

我么还可以在这个挂载点,创建文件

跳到我们共享的目录看一下,创建的文件是否存在

cd /tmp;ls

可见这个文件确实存在,而且对这个共享目录,任何人可读可写。

最后,我们把这个挂载卸掉`umount /home/test

windows下测试

windows下测试非常简单,打开资源管理器,在地址栏输入\192.168.191.3(即服务器IP地址),就可以看到共享的目录。

打开目录,可以对里面的内容进行读写

4.例子2:一个需要密码才可以登录的共享

  假设有3个学生需要共享一个homework目录,我们可以这样操作。

1.首先建立3个学生用户stu1,stu2,stu3,同属于stu用户组,设置用户密码。

2.在根目录下建立homework目录

 

3.将刚刚建立的三个用户添加到samba用户中(smbpasswd -a USER姓名)

4.查看一下已经存在的samba用户(pdbedit -L)

可以看到,现在有3个samba账号。

5.修改samba配置文件(vim /etc/samba/smb.conf)

#1.全局部分参数设置:
[global]
        #与主机名相关的设置
        workgroup = zkhouse
        netbios name = zkserver
        serverstring = this is a test samba server
        #与登录文件有关的设置
        log file = /var/log/samba/log.%m
        max log size = 50
        #与密码相关的设置
        security = user       <==表示需要密码,可设置的值为share、user和server
        passdb backend = tdbsam
        #打印机加载方式
        load printer = no <==不加载打印机
-----------------------------------------------------------
#2.共享资源设置方面:将旧的注释掉,加入新的
#先取消[homes]、[printers]等项目,添加[homework]项目如下
[homework]
        comment = students‘ homework
        path = /homework
        browseable = yes
        writable = yes
        write list = @stu

6.重启samba服务

service smb restart;service nmb restart

7.windows客户端测试

按win+R,输入\192.168.191.3(服务器IP地址)

弹出登录界面,输入用户和密码,我们以stu1的身份登录。

可以看到共享的文件夹

此时,我么可以浏览,打开文件夹里面的文件,也可以将文件拷贝出去,但是不能修改文件,不能添加文件。

这是新建文件时弹出的提示。

原因很简单,就是权限不够,因为我们在创建homework目录的时候,使用的是root用户,所以homework目录的所有者和所有组均是root,stu用户组的用户没有write权限,因此不能修改、新建homework里面的文件。

我们将homework所有组改为stu,并赋予write权限。

现在共享目录应该可以修改、新建文件了。

9.我们再来添加不同用户的home目录

修改配置文件smb.conf,把[home]项目的注释取消掉

[homes]
        comment = Home Directories
        browseable = no
        writable = yes
;       valid users = %S
;       valid users = MYDOMAIN\%S
;       create mode = 0664
;       directory mode = 0775

重启samba服务,然后按win+R,输入\192.168.191.3,即可看见共享的文件夹多了一个stu1。在这个文件夹里面可以修改、新建文件。

5.关闭SELinux(重要)

在默认情况下,SELinux是开启的,我们可以通过getenforce查看SELinux的状态。

SELINUX几种状态表示:
enforcing:强制模式,代表 SELinux 运行中,且已经正确的开始限制 domain/type 了;
permissive:宽容模式:代表 SELinux 运行中,不过仅会有警告信息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
disabled:关闭,SELinux 并没有实际运行。

此时,登录samba服务器可以看到共享文件夹,但是文件夹是无法访问的,如下图

可以使用setenforce指令将SELinux改成宽容模式

重启samba服务,共享目录就可以正常访问。

时间: 2024-10-12 14:19:46

【Linux】samba服务器的安装和配置的相关文章

【转载】Linux NFS服务器的安装与配置

一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NFS在文件传

CentOS6.4下Samba服务器的安装与配置

一.先恶狠狠地吐槽一下: 这篇随笔真是让我折腾了2天2夜才敢下笔写!!!为什么呢?之前是通过去Samba的官网下载的源码包,也就是.tar.gz来进行安装配置,不过这个让我折腾来折腾去就是没折腾出结果,还花了我整整1天1夜的时间,最后实在是熬不住了,想通过yum来重新进行Samba服务器的安装与配置,但是要使用yum首先必须是CentOS要联网,而我又没有找到Samba的rpm包,而之前一直没有搞定在虚拟机中的CentOS上网的问题,所以新的纠结又开始了,首先得先想办法让虚拟机能上网,这段经历已

samba服务器的安装和配置

CentOS 6.3下Samba服务器的安装与配置 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微 软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许

CentOS 7下Samba服务器的安装与配置

本文基于<CentOS 6.3下Samba服务器的安装与配置>,参照原博文,自己在CentOS7环境上实现,并按照自己的环境修改博文内容 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Int

[转载]CentOS6.4下Samba服务器的安装与配置

原文地址:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/06/3001863.html 一.先恶狠狠地吐槽一下: 这篇随笔真是让我折腾了2天2夜才敢下笔写!!!为什么呢?之前是通过去Samba的官网下载的源码包,也就是.tar.gz来进行安装配置,不过 这个让我折腾来折腾去就是没折腾出结果,还花了我整整1天1夜的时间,最后实在是熬不住了,想通过yum来重新进行Samba服务器的安装与配置,但是要 使用yum首先必须是CentOS要

Linux NFS服务器的安装与配置(转载)

一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NF

CentOS 6.5下Samba服务器的安装与配置

一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能

CentOS 6.3下Samba服务器的安装与配置

转自:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Internet

CentOS6 下Samba服务器的安装与配置

原地址:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Interne

CentOS 6.3下Samba服务器的安装与配置(转)

一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能