Samba文件共享服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]:全局设置

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

  [printers]:打印机共享设置

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


二、构建文件共享服务器

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共享用户

     技术分享

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




本文出自 “杨书凡” 博客,请务必保留此出处http://yangshufan.blog.51cto.com/13004230/1952957

以上是关于Samba文件共享服务的主要内容,如果未能解决你的问题,请参考以下文章

Linux之SAMBA文件共享服务器

samba文件共享服务笔记

samba文件共享服务笔记

Samba文件共享服务

Samba文件共享服务

网络文件共享服务-Samba