CentOS Linux 下安装Samba

时间:2021-06-19 14:27:55
一、Samba简介:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。Linux中搭建环境有几个需要使用的软件包:
(1)samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令
(2)samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等
(3)samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等
二、Samba服务器权限的控制
1.本地权限:指本地文件的权限。
2.网络权限:指网络服务器中对文件的控制的访问的权限。
Samba共享文件的权限根据最严格的权限来决定,如果本地权限与网络权限相同时,使用相同的权限。反之,取两者之间最严格的权限。
三、samba服务器的安全级别以及编辑方法:
通过编辑/etc/samba/smb.conf文件中的Standalone Server Options字段中来控制
CentOS Linux 下安装Samba
(1)share 允许匿名访问
(2)user 访问过程中需要身份验证
(3)samba 访问需要身份验证,验证使用 本地samba账号库
(4)server 访问需要身份验证,验证方式使用网络服务器中的 samba账号库
四、windows 客户端访问smb server的方法:
1.点击网上邻居中搜索计算机
CentOS Linux 下安装Samba
2.在命令提示符下使用unc路径来访问 (访问格式:\\对方ip地址或者名字\共享名字)
3.通过映射网络驱动器来访问samba服务器
4.使用net use 、net share命令来访问
五、在linux客户端中smbclient的使用方法
使用列表列出服务器中的所有文件
smbclient -L //192.168.100.123 -U zhangsan
连接到服务器
smbclient //192.168.100.123/smbzs -U zhangsan
六、案例:
案例要求:在samba服务器中根据以下要求将相应文件共享
共享文件名 物理路径 权限
public             /abc              任何人(ro)
smbzs             /zhangsan    zhangsan (rw)
smbls              /lisi                lisi (rw)
试验步骤:
第一、搭建samba服务器
[root@zhangc Server]# yum install -y samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm --nogpgcheck
第二、配置对samba服务器的访问权限
编辑/etc/samba/smb.conf文件如下图所示:
1.workgroup为linux服务器所在的工作组
2. bind interface only = yes 表示对接口进行绑定
3. interfaces = x.x.x.x 表示允许被访问的samba服务器的ip地址
4. hostallow表示允许访问samba服务器的ip地址段
CentOS Linux 下安装Samba
第三、创建共享目录并赋予相应权限。
创建共享目录的格式:
265【文件名】
266 comment = 注释
267 path = 被访问的文件夹的路径
268 browseable = yes 给予读权限
269 guest ok = yes 允许匿名访问
270 writable = no 给以写权限
CentOS Linux 下安装Samba
第四、Winows客户端进行测试:
在命令行中键入\\192.168.100.123
CentOS Linux 下安装Samba
CentOS Linux 下安装Samba
CentOS Linux 下安装Samba
第五、Linux中对samba服务器进行访问
 
CentOS Linux 下安装Samba
 
============================================
samba的安装

一、Samba简介     samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议。SMB协议通常是被windows系列用来实现磁盘和打印机共享。需要注意的是,NetBIOS是基于以太网广播机制的,没有透明网桥是不能跨越网段的,也许用WINS和LMHOSTS可以,但我没试过。我感觉samba是把SMB绑定到TCP/IP上实现的,samba只在IP子网内广播(很多时候我不得不指定IP地址:-()。所以在win95上与samba通讯既要装NetBEUI协议,也要装tcp/ip协议。

在早期网络世界当中,档案数据在不同主机之间的传输大多是使用 FTP 这个好用的服务器软件来进行传送。不过,使用FTP 传输档案却有个小小的问题,那就您无法直接修改主机上面的档案数据!也就是说您想要更改Linux 主机上的某个档案时,必需要由 Server 端将该档案下载到 Client端后才能修改,也因此该档案在 Server 与 Client 端都会存在。这个时候,万一如果有一天您修改了某个档案,却忘记将数据上传回主机,那么等过了一阵子之后,如何知道那个档案才是最新的?

既然有这样的问题,可不可以在 Client 端的机器上面直接取用Server 上面的档案,如果可以在 Client 端直接进行 Server 端档案的存取,那么在Client 端就不需要存在该档案数据,也就是说,只要有 Server 上面的档案资料存在就可以!有没有这样的档案系统( File System )?很高兴的是, NetworkFile System, NFS 就是这样的档案系统之一!我只要在 Client 端将 Server所提供分享的目录挂载进来,那么在 Client 的机器上面就可以直接取用 Server上的档案数据,而且,该数据就像 Client 端上面的partition 一般!而除了可以让 Unix Like 的机器互相分享档案的NFS 服务器之外,在微软 ( Microsoft ) 上面也有类似的档案系统,那就是 CommonInternet File System, CIFS 这个咚咚啦!CIFS 最简单的想法就是目前常见的『网上邻居』。Windows 系统的计算机可以透过桌面上『网上邻居』来分享别人所提供的档案数据。不过,NFS仅能让 Unix 机器沟通, CIFS 只能让 Windows 机器沟通。伤脑筋,那么有没有让Windows 与 Unix-Like 这两个不同的平台相互分享档案数据的档案系统?

1991 年一个名叫Andrew Tridgwell 的大学生就有这样的困扰,他手上有三部机器,分别是跑DOS 的个人计算机、DEC公司的 Digital Unix 系统以及 Sun 的 Unix 系统。在当时,DEC 公司有发展出一套称为 PATHWORKS 的软件,这套软件可以用来分享 DEC 的Unix 与个人计算机的 DOS 这两个操作系统的档案数据,可惜让 Tridgwell 觉得较困扰的是,Sun的 Unix 无法藉由这个软件来达到数据分享的目的。这个时候 Tridgwell 就想说:『咦!既然这两部系统可以相互沟通,没道理Sun 就必需这么苦命吧?可不可以将这两部系统的运作原理找出来,然后让 Sun这部机器也能够分享档案数据呢?』,为了解决这样的的问题,这老兄就自行写了个program 去侦测当 DOS 与 DEC 的 Unix 系统在进行数据分享传送时所使用到的通讯协议信息,然后将这些重要的信息撷取下来,并且基于上述所找到的通讯协议而开发出ServerMessage Block (SMB) 这个档案系统,而就是这套 SMB软件能够让 Unix 与 DOS 互相的分享数据!( 注:再次的给他强调一次,在Unix Like 上面可以分享档案数据的 file system 是 NFS,那么在 Windows 上面使用的『网络邻居』所使用的档案系统则称为Common Internet File System, CIFS )

因此 Tridgwell就去申请了 SMBServer ( Server Message Block 的简写 ) 这个名字来做为他撰写的这个软件的商标,可惜的是,因为SMB 是没有意义的文字,因此没有办法达成注册。既然如此的话,那么能不能在字典里面找到相关的字词可以做为商标来注册呢?翻了老半天,呵呵!这个SAMBA刚好含有 SMB ,又是热情有劲的拉丁舞蹈的名称,不如就用这个名字来做为商标好了。如此,这成为我们今天所使用的SAMBA 的名称由来。

二、系统环境

系统平台:CentO   防火墙已关闭/iptables: Firewall is not running.    SELINUX=disabled    如保关闭SELINUX:     1、快速关闭SElinux,使用如下命令就可以:

#/usr/sbin/setenforce 0 立刻关闭 SELINUX

#/usr/sbin/setenforce 1 立刻启用 SELINUX

2、加到系统默认启动里面

#echo "/usr/sbin/setenforce 0" >> /etc/rc.local

3、可以编辑配置文件达到同样的目的

#vi /etc/selinux/conf       #set SELINUX=disabled    三、安装Samba 1、在可以联网的机器上使用yum工具安装,如果未联网,则挂载系统光盘进行安装。

# yum install samba samba-client samba-swat   2、查看安装状况    #rpm -qa|grep samba    samba-winbind-3.6.9-151.el6.i686    samba-winbind-clients-3.6.9-151.el6.i686    samba-common-3.6.9-151.el6.i686              //主要提供samba服务器的设置文件与设置文件语法检验程序testparm    samba-client-3.6.9-151.el6.i686                   //客户端软件,主要提供linux主机作为客户端时,所需要的工具指令集    samba-swat-3.6.9-151.el6.i686                    //基于https协议的samba服务器web配置界面    samba-3.6.9-151.el6.i686                           //服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项

Samba服务器安装完毕,会生成配置文件目录/etc/samba和其它一些samba可执行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的启动/关闭文件。   3、启动Samba服务器

#/etc/init.d/smb start   #/etc/init.d/nmb start

4、查看samba的服务启动情况   #service smb status    5、设置开机自启动    # chkconfig --level 35 smb on             //在3、5级别上自动运行samba服务    四、配置Samba 1、创建用户组    #groupadd test    2、建立组用户     #useradd -g test test    3、修改用户密码    #passwd test    4、在根目录下建立要共享的文件夹    #cd /    #mkdir share    5、将刚才建立的两个帐户添加到samba的账户中    #smbpasswd -a test    6、修改主配置文件,加入下面内容Share Definitions中    #============================ Share Definitions ==============================    [test]                                                           comment = TEST            path = /share            writable = yes            valid users = @test            write list = @test

7、改一下文件所属的用户

chown -hR test /share

8、重起samba   #/etc/init.d/smb restart    #/etc/init.d/nmb restart