Samba共享服务是Linux系统里可以跨平台共享文件的一种服务,在多个不同系统之间创建共享文件。

步骤一:安装服务

1.准备网络环境:2台Linux主机,一台为服务器端,另一台为客户端。在服务器端配yum仓库

2. 安装服务

  [[email protected] 桌面]#yum -y install samba samba-client

  Installed: samba.x86_64 0:3.6.9-164.el6

  [[email protected] 桌面]# service smb start

  启动 SMB 服务:                                            [确定]

 [[email protected] 桌面]# chkconfig smb on

步骤二:配置共享文件

[[email protected] samba]# vim/etc/samba/smb.conf

配置文件的一些参数说明:

[global]                          //全局配置

workgroup = MYGROUP             //工作组名称

security = user                    //安全级别:share、user、server、domain四个级别

                                            //share:允许匿名用户访问;

                                           //user:用户验证访问;

                                          //server:指定第三方服务器认证;

                                          //domain:域用户验证访问。

[tools]                          //共享目录名称

  comment = Test Share Direstory.      //共享目录的描述

  path = /usr/src                            //指定共享路径

  public = yes                             //所有人都可访问

  read only = yes                            //默认的权限为只读

  writable = no              //写入权限设置

  browseable = no                           //隐藏共享设

  valid users=user1,user2.. ..   //user级别下合法访问的用户名

  write list= user1,user2.. ..     //拥有写入权限的用户

注:以上参数中有冲突的权限只能选择一个

步骤三:客户端验证

1. Windows客户端

在资源管理器中输入IP地址,即可访问共享文件

wKiom1UPiWTD5myNAAFp9F5sPsE756.jpg

2.Linux客户端

[[email protected] 桌面]#smbclient -L //192.168.4.5    //-L查询共享文件列表

Enter root's password:                         //直接按enter键

         Sharename    Type     Comment

         ---------             ----             -------

         tools                             Disk        software source               //typedisk的即为网络共享文件

[[email protected] 桌面]# smbclient //192.168.4.5/tools  //访问共享文件

Enter root's password:

Domain=[MYGROUP] OS=[Unix]Server=[Samba 3.6.9-164.el6]

Server not using user levelsecurity and no password supplied.    //这里提示不需要密码

smb: \>                                            //smb开头表示已经入共享目录

smb: \> ls                                              //列出共享文件目录内容

 debug                               D        0 Tue Jun 28 22:13:01 2011

 kernels                            D        0  Tue Mar 17 14:01:37 2015

步骤四:user级别下的共享设置

Samba共享账号的用户密码是独立的,也就是说一个账号2个密码,一个是登录密码、一个是共享密码。

  1. 设置共享密码

[[email protected] samba]# pdbedit -azhangsan              //-a:添加新密码,默认为修改密码

new password:

retype new password:

Unix username:        zhangsan

2. 修改共享配置

[[email protected] ~]# vim  /etc/samba/smb.conf

[global]

security = user                           //安全级别改为user

[tools]

        comment = software source

        path = /usr/src

        public = no                            //public改为no

        read only = yes

        valid user = zhangsan,lisi                 //指定合法用户

        write list = lisi                          //用户lisi可读可写

3.配置共享目录权限、重启服务

[[email protected] samba]# setfacl -m u:lisi:rwx /usr/src/

[[email protected] samba]#service smb restart

4.客户端验证

[[email protected] 桌面]# smbclient  //192.168.4.5/tools          

Enter root's password:

tree connect failed: NT_STATUS_ACCESS_DENIED                 //匿名用户登录失败

[[email protected] 桌面]#smbclient  -U zhangsan//192.168.4.5/tools   //zhangsan登录成功

smb: \> mkdir zhangsan

NT_STATUS_MEDIA_WRITE_PROTECTEDmaking remote directory \zhangsan        //zhangsan没有写入权限

[[email protected] 桌面]# smbclient -U lisi //192.168.4.5/tools         //用户lisi登录

smb: \> mkdir lisi                                             //新建目录

smb: \> ls                                                   //查看,创建成功

  lisi                                D        0 Mon Mar 23 11:00:06 2015

挂载共享目录

[[email protected] 桌面]# mount -o user=lisi,password=222  //192.168.4.5/tools /mnt/samba/

[[email protected] 桌面]# df –h

Filesystem                   Size  Used  Avail Use%  Mounted on

//192.168.4.5/tools           50G 3.5G   44G   8%   /mnt/samba

步骤五:共享账号的别名设置

在网络中,账号的泄露会增加被***的风险。为了安全Samba服务提供了别名设置。就是提供给使用者的共享账号并不是服务器上真实的用户账号,而是真实账号映射的别名,通过这种机制大大的提高了服务器的安全性

1.默认情况下别名设置的文件在/etc/samba/sbmusers路径下,通过修改文件来实现

User = 别名

lisi = hello

2.修改配置文件(/etc/samba/smb.conf),在全局配置下添加

[global]

username map =/etc/samba/smbusers

3.重启smb服务

[[email protected] samba]# service smbrestart

4.客户端验证

[[email protected] 桌面]# smbclient -U hello //192.168.4.5/tools

smb: \> ls

  debug                          D       0  Tue Jun 28 22:13:01 2011

  lisi                             D       0  Mon Mar 23 11:00:06 2015

 kernels                            D        0  Tue Mar 17 14:01:37 2015