Samba文件共享服务

简介:

一、Samba软件的组成

   SMB(Server Message Block,服务消息块)是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软SMB/CIFS网络协议,从而使得跨平台的文件共享变得更加容易

   CIFS 协议(Common Internet File System,通用互联网文件系统)


Samba 服务器的主要程序

    smbd:提供对服务器中文件、打印资源的共享访问,端口tcp 139 445

    nmbd:提供基于 NetBIOS 主机名称的解析,端口udp 137 138


Samba 的配置目录及文件

   Samba服务的配置文件位于/etc/samba/目录中,其中smb.conf是主配置文件

  以 # 号开头的行表示注释性文字

  以 ; 号开头的行表示配置样例

  [global]:全局设置

    wKiom1mBnRvwp9mTAABwio-IWP0553.png-wh_50

  [homes]:用户目录共享设置

  [printers]:打印机共享设置

  [自定义]:自定义名称的共享目录设置

    wKioL1mBnXGBj8bkAABidkcyzqA451.png


二、构建文件共享服务器

1.可匿名访问的共享

  适用于公开的资源共享,一般只建议提供只读访问,不需要密码,在安全性不高的情况下,可方便、快捷的与其他主机共享资源

例如:公司需要配置一台文件服务器,需要建立一个public目录,存放公共数据,如公司的规章制度、员工手册等,允许所有员工访问,但只有读取权限

   # mount  /dev/cdrom  /media                              

   # rpm  -ivh  /media/Packages/samba-3.6.9-164.e16.x86_64  

   # mkdir  /public                                         

   # vim  /etc/samba/smb.conf

     [global] 

         workgroup=WORKGROUP       //Windows主机默认工作组

         security=share         //允许匿名访问

     [公共目录]

         comment=注释

         path=/public             //共享文件夹路径

         public=yes          //是否所有人都可访问共享目录

         read only=yes           //共享文件是否只读

   # service  smb  start             //开启Samba服务 

  配置完成,可以从Windows客户机或Linux客户机中浏览并匿名访问此文件了


2.需要用户验证的共享

  设置用户验证的共享文件夹时,除了需要改smb.conf配置文件,还要先创建授权的共享账户

(1)建立Samba用户数据库

   Samba共享用户的账号数据库文件默认位于 /var/lib/samba/private/passdb.tdb,是一个经过加密的文件,保存了Samba用户的账号、密码、状态等信息

a.创建Samba共享用户

例如:将用户yangshufan添加到Samba共享用户

     wKiom1mAdc2QkhnYAABHq4K1GzU215.png-wh_50

b.查看Samba共享用户

   # pdbedit  -L                        //列出所有Samba用户

   # pdbedit  -vL  yangshufan             //只列出yangshufan用户,输出详细信息

c.删除Samba共享用户

   # pdbedit  -x -u  yangshufan  


(2)设置用户访问授权

   当授权多个用户是,用逗号或空格进行分隔;授权用户组时,可使用“@组名”的形式

例如:将本地目录/share发布为共享文件夹,要求共享用户yangshufan、51cto能访问,其中yangshufan用户具有写入权限

   # mkdir  /share                 

   # vim /etc/samba/smb.conf       

     [global]

         security=user         //需本服务器验证用户名及密码

     [共享]

         comment=注释

         path=/share

         public=no

         read only=yes

         valid users= yangshufan,51cto        //只有哪些用户可登陆

         write list= yangshufan          //只有哪些用户可写

   # service  smb  reload           


(3)确定目录访问授权

   共享用户最终是否拥有读取、写入权限,除了设置用户授权外,还需要共享的本地文件夹必须有相应的读取、写入权限

例如:为了方便,可将/share文件夹的权限设置为777

   # chmod  777  /share           

   共享用户所上传的文件、创建的子目录的默认权限可分别修改以下配置项

例如:用户访问共享文件时,所上传的目录默认权限为755,文件的默认权限为644

   # vim /etc/samba/smb.conf         

     [共享]

         directory mask=0755        //文件夹权限

         create mask=0644         //文件权限


3.用户映射及访问地址限制

   为了进一步提高Samba共享服务的安全性,除了可以对指定的共享目录设置用户权限以外,还可以采用用户映射、访问地址限制等措施

(1)共享账户映射(别名)

  共享账户的映射文件默认位于 /etc/samba/smbusers

例如:为现有Samba共享用户yangshufan指定两个别名yyy、sss

   # vim /etc/samba/smbusers                

    yangshufan= yyy sss

   # vim /etc/samba/smb.conf                

     [global]

       username map= /etc/samba/smbusers

   # service  smb  reload                   


(2)访问地址限制

   一般用于[global]全局配置模式,下面两种方式任选其一

   hosts allow 配置项:仅允许特定的客户机

   hosts deny 配置项:仅拒绝特定的客户机

例如:仅允许来着192.168.1.0/24、172.16.0.0/16网段的客户机访问Samba服务器

   # vim /etc/samba/smb.conf                

     [global]

        hosts allow=192.168.1.  172.16.

   # service  smb  reload                   


三、在Linux客户机访问共享文件夹

1.使用smbclient访问共享文件夹

(1)查询目标主机的共享资源列表

例如:匿名查询Samba服务器192.168.1.1中提供的共享资源列表

   # smbclient  -L  192.168.1.1              


(2)登陆并访问共享文件夹

例如:登陆Samba服务器后,下载文件aaa、上传文件bbb

   # smbclient  -U yangshufan  //192.168.1.1/共享         

   smb: \> pwd                    //查看当前工作路径

   smb: \> ls                     //列出当前目录下的内容

   smb: \> lcd  /root/            //将本地目录切换到/root/

   smb: \> cd  share/             //切换到共享目录的share子目录

   smb: \share\> mget  aaa        //下载文件aaa

   smb: \share\> mput  bbb        //上传文件bbb

   smb: \share\> quit             //退出共享目录


2.使用mount挂载共享文件夹

例如:将Samba服务器192.168.1.1的共享文件夹挂载到本地的/media/smbdir文件夹,以共享yangshufan进行验证

   # mkdir  /media/smbdir                                           

   # mount -o username=yangshufan //192.168.1.1/共享  /media/smbdir 

  挂载成功后,可以对Samba服务器的访问权限进行测试,根据上面的配置,yangshufan用户对共享目录具有写入权限,所上传的目录默认权限为755,文件的默认权限为644

   # cd  /media/smbdir            //切换到挂载点

   # mkdir  mydir                //创建测试文件夹

   # touch  myfile                //创建测试文件

   # ls  -ld  my*                //验证所创建的目录、文件的权限

   drwxr-xr-x 2 505 505 8月2 12:12 mydir

   -rw-r--r-- 2 505 505 8月2 12:13 myfile











本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/1952957,如需转载请自行联系原作者
目录
相关文章
|
6天前
|
安全 Linux 网络安全
Samba局域网共享文件
Samba局域网共享文件
|
7天前
|
网络协议 Linux
基于 NFS 的文件共享实现
基于 NFS 的文件共享实现
|
存储 网络协议 Linux
使用Samba实现文件共享
SMB服务消息块协议,指在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单.到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统的文件共享问题,基于SMB协议,开发出了SMBServer服务程序,后来由于名称冲突,改名为Samba,而如今Samba服务已经成为了,Linux系统与Windows系统之间数据传输的最佳选择.
259 0
|
存储 网络协议 Linux
Linux网络服务之NFS(文件共享服务)
1 NFS简介 NFS(Network File System 网络文件服务),是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
668 1
|
Linux 开发工具 数据库
Linux使用Samba实现文件共享
Linux使用Samba实现文件共享Samba服务是现在Linux系统与Windows系统之间共享文件的最佳选择。 [root@study ~]# yum install samba -y  #安装samba服务 [root@study ~]# cat -n /etc/samba/smb.
1319 0
|
Linux 网络安全
RHEL7用samba作为文件服务器
参考文章:《linux就该这样学》 samba多用户、多组的访问 RedHat7下Samba服务搭建配置实例 需求:20多台装有win7系统的计算机访问,有可以共同访问的目录,有各自部门各自访问的目录 实验环境:一台笔记本,虚拟机中安装RHEL7         本来是打算用域环境,比较方便,但是是别人的分公司,所以没办法安装域。
1215 0
|
安全 网络协议 数据安全/隐私保护
|
安全 数据库 数据安全/隐私保护