概述

samba是实现Linux和Windows计算机之间互相通信的一个免费软件,使用的是SMB(Server Message Block)协议,该协议一般用于文件共享和打印机服务。

samba与ftp的功能类似,与ftp相比,samba有以下特点:

  1. samba的优点在于可以在传输的过程中对文件内容进行更改
  2. samba的缺点是只能在同一局域网下使用,如果在服务器在公网的话还是得老老实实用ftp

服务配置环境

实验环境:

  1. 服务端:CentOS6.5
  2. 客户端:windows7

配置前工作

  1. 进入并修改yum源:cd /etc/yum.repos.d/,rm -rf * 删除该文件夹下的所有文件。
    1
    2
    cd /etc/yum.repos.d/
    rm -rf *
  2. 新建一个名为local.repo的文件,在文件内输入以下内容:
    1
    2
    3
    4
    5
    6
    [base]
    name=CentOS-$releasever - Base
    baseurl=file:///media/CentOS_6.5_Final
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  3. 检查虚拟机设置:使用对应的iso映像文件,设备状态:已连接

普通配置方法

  1. 安装samba服务
    1
    yum install samba -y
  2. 修改配置文件,添加一个局部的共享区域:
    1
    2
    3
    4
    5
    6
    7
    vim /etc/samba/smb.conf

    [my_share] #共享文件夹名字,可任意修改
    comment=my_share #备注信息,任意填写即可
    path=/home/jason #共享文件夹的本地路径,这里是用户jason的家目录
    public=yes #是否允许匿名访问
    writable=yes #设置该目录具有读写权限
  3. 创建用户,并将该用户加入到samba服务
    1
    2
    3
    useradd jason -p 123456 #创建用户jason
    smbpasswd -a jason #将新建用户jason加入到samba服务当中
    然后系统会提示要输入一个新的samba服务的密码,用来登录samba服务
  4. 输入以下命令设定samba共享目录权限
    1
    setsebool -P samba_export_all_rw on #设定共享目录的访问权限为可读可写,可自行修改
  5. 启动samba服务,关闭防火墙
    1
    2
    service smb start
    service iptables stop
  6. win+r打开文件资源管理器中,输入”\\服务端IP”
  7. 输入刚刚新建的用户以及刚刚设定的登录samba服务的密码
  8. 如出现类似以下画面,则表示服务配置成功!

最快配置方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. yum install samba -y #安装samba服务

2. setsebool -P samba_enable_home_dirs on #允许共享用户的主目录

3. setsebool -P samba_export_all_rw on #设定共享目录的访问权限为可读可写,可自行修改

4. useradd jason -p 123456 #新建一个用户

5. smbpasswd -a jason #将新建的用户加入到samba服务当中

6. service iptables stop #关闭防火墙

7. service smb start #开启samba服务

8. 在文件资源管理器中输入"\\服务端IP"即可访问

拓展

查看已加入samba服务的用户

1
* pdbedit -L #该命令可查看当前已加入samba服务的用户

主配置文件smb.conf解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[global]	#全局设定
workgroup = SAMBA #在windows平台下显示的工作组名称
security = user #security字段被称为安全模式字段,有两种常用的字段,user模式和share模式,默认为user模式
#1.share模式:客户端不用提交用户名和密码就可以访问samba服务器上的共享资源
#2.user模式:客户端需提交用户名和密码才可以访问samba服务器上的共享资源,需要在服务器上创建用来访问samba的用户
passdb backend = tdbsam #后台存放用户信息的方式,默认为tdbsam

#家目录的共享设置,不必关心,可以删除并禁止
[homes]
comment = Home Directories
path=/home/smbuser/share
valid users = smbuser
browseable = no
writable = yes
inherit acls = Yes

#自定义共享设置
[sambatest] #共享目录名字,可任意设置
comment = just_for_test #共享资源备注信息,可任意设置
path = /home/sambauser #共享资源在Linux服务器的原始路径
public = no #是否允许匿名访问
writable = yes #是否可写,read only属性正好相反,两者选其一即可
browseable = yes #是否可浏览,#把browseable= no时,用户A成功登陆,却看不到homes文件夹;
#把browseable = yes时,用户A成功登陆,可以看到homes文件夹。
valid users = sambauser #仅允许指定的smbuser用户访问共享资源,可修改

#打印机的共享设置,同样不必关心
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No