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

一、前言

二、环境

三、案例

四、配置samba

五、测试访问

六、挂载

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


一、前言

   SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

  samba端口简介:

1)Port 137 (UDP) - NetBIOS 名字服务 ; nmbd

2)Port 138 (UDP) - NetBIOS 数据报服务

3)Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB协议,主要在局域网中使用,文件共享协议)

4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)

5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口,(Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)

6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samba  

  Samba功能和应用范围

Samba应用范围主要是Windows和Linux 系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,没有必要用Samba,应该用NFS更好一点;Samba主要为我们提供共享文件和共享打印机等服务;

Samba 有两个服务器,一个是smb,另一个是nmb;

smb 是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么,主要用来传输数据;如果不打开nmb服务器的话,只能通过IP来访问,比如在Windows的IE浏览器上打入下面的一条来访问;

\\192.168.1.5\共享目录

\\192.168.1.5\opt

而nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来;

 

二、环境

samba服务器: CentOS6.4 32位 (redhat6.5 也已测试,没问题)

IP:192.168.2.102/24

软件包:

samba:这个软件主要提供了SMB服务器所需的各项服务程序(smbd和nmbd)、相关的文件以及其他与SAMBA相关的logrotate配置文件及开机默认选项文件等。

samba-client:当linux系统作为samba客户端时,就需要samba-client了,含有各种工具命令。


三、简单案例

公共目录    public   /abc           ro  允许任何人匿名访问,

张三        smbzs   /tmp/zhangsan   rw  不允许他人访问

李四        smbls   /tmp/lisi       rw  不允许他人访问

四、配置samba

# yum install samba samba-client            //安装samba及samba客户端
# rpm -ql samba |less                       //查看samba安装路径
# service smb start
Starting SMB services:                                     [  OK  ]
# netstat -tupln |grep smb
tcp   0      0 0.0.0.0:139  0.0.0.0:*   LISTEN    2565/smbd     
tcp   0      0 0.0.0.0:445  0.0.0.0:*   LISTEN    2565/smbd     
tcp   0      0 :::139       :::*        LISTEN    2565/smbd     
tcp   0      0 :::445       :::*        LISTEN    2565/smbd     
# service nmb start
Starting NMB services:                                     [  OK  ]
# netstat -tupln |grep nmb
udp    0    0  192.168.2.255:137   0.0.0.0:*     2583/nmbd     
udp    0    0  192.168.2.102:137   0.0.0.0:*     2583/nmbd     
udp    0    0  0.0.0.0:137         0.0.0.0:*     2583/nmbd     
udp    0    0  192.168.2.255:138   0.0.0.0:*     2583/nmbd     
udp    0    0  192.168.2.102:138   0.0.0.0:*     2583/nmbd     
udp    0    0  0.0.0.0:138         0.0.0.0:*     2583/nmbd     
# mkdir  /tmp/zhangsan
# mkdir  /tmp/lisi
# useradd zhangsan        //只有本地账号才能创建samba账号,不要设置密码
# useradd lisi
# chown zhangsan.zhangsan /tmp/zhangsan/
# chown lisi.lisi /tmp/lisi/
# ll /tmp
drwxr-xr-x. 2 lisi     lisi       4096 Feb 19 01:39 lisi
drwxr-xr-x. 2 zhangsan zhangsan   4096 Feb 19 01:39 zhangsan
# touch /tmp/zhangsan/zhangsan.txt
# touch /tmp/lisi/lisi.txt
# mkdir /abc                         //新建公共目录
# touch /abc/public.txt
# vim /etc/samba/smb.conf           //编辑samba主配置文档
     291         [public]
     292         comment = This is a public dir
     293         path = /abc
     294         public = yes
     295 ;       writable = yes
     296 ;       printable = no
     297 ;       write list = +staff
     298         [smbzs]
     299         comment = This is zhangsan's share dir
     300         path = /tmp/zhangsan
     301         valid users = zhangsan    //合法用户只有自己
     302         writable = yes
     303 ;       printable = no
     304 ;       write list = +staff
     305         [smbls]
     306         comment = This is lisi's share dir
     307         path = /tmp/lisi
     308         valid users = lisi
     309         writable = yes
     310 ;       printable = no
     311 ;       write list = +staff
# testparm                                 //查看配置
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Processing section "[smbzs]"
Processing section "[smbls]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
    workgroup = MYGROUP
    server string = Samba Server Version %v
    interfaces = 192.168.2.102/24
    bind interfaces only = Yes
    log file = /var/log/samba/log.%m
    max log size = 50
    idmap config * : backend = tdb
    cups options = raw
[homes]
    comment = Home Directories
    read only = No
    browseable = No
[printers]
    comment = All Printers
    path = /var/spool/samba
    printable = Yes
    print ok = Yes
    browseable = No
[public]
    comment = This is a public dir
    path = /abc
    guest ok = Yes
[smbzs]
    comment = This is zhangsan's share dir
    path = /tmp/zhangsan
    valid users = zhangsan
    read only = No
[smbls]
    comment = This is lisi's share dir
    path = /tmp/lisi
    valid users = lisi
    read only = No
# smbpasswd -a zhangsan          //创建zhangsan用户的samba登录密码
# smbpasswd -a lisi
# service smb restart
Shutting down SMB services:                              [  OK  ]
Starting SMB services:                                   [  OK  ]

五、测试访问(为了正常测试,请先关闭防火墙和SELinux。)

1-1.访问测试1(windows XP访问linux共享)

samba简单配置_samba

输入samba服务器地址

samba简单配置_配置_02

以张三的身份访问

samba简单配置_服务器_03

public是公共目录,任何人都可以进入,只有可读权限;smbzs是张三的目录,张三本人具有一切权限;zhangsan是张三的家目录;smbls是李四的目录,张三无法进入。


将公共目录固定XP资源管理器中(使用一个没有使用的盘符)

samba简单配置_samba_04

已固定在资源管理器中,可以随时访问。

samba简单配置_配置_05

1-2.访问测试2(linux访问linux共享)

# smbclient -L //192.168.2.102
Enter root's password:
Anonymous login successful
# smbclient  //192.168.2.102/smbzs -U zhangsan
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]
smb: \> ls
  .                          D        0  Wed Feb 19 02:17:11 2014
  ..                         D        0  Wed Feb 19 01:39:32 2014
  zhangsan.txt                        0  Wed Feb 19 01:41:53 2014
smb: \> q

六、挂载

1-1.临时挂载,以张三为例,下同。

# mount  //192.168.2.102/smbzs  /mnt/zhangsan/ -o username=zhangsan,password='123'
# mount  //查看
//192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw,username=zhangsan,password=123)

1-2.永久挂载1(账户和密码可见,不安全)

# vim /etc/fstab
//192.168.2.102/smbzs  /mnt/zhangsan  cifs defaults,username=zhangsan,password=123  0 0
# mount -a
# mount
//192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw,use2name=zhangsan,password=123)

1-3.永久挂载2(账户和密码写入文件)

# vim  /etc/samba/zhangsan    
    1 username=zhangsan
    2 password=123
# chmod 600 /etc/samba/zhangsan
# ll /etc/samba/zhangsan
-rw-------. 1 root root 29 Feb 19 02:55 /etc/samba/zhangsan                                                                         
# vim /etc/fstab
//192.168.2.102/smbzs  /mnt/zhangsan  cifs defaults,credentials=/etc/samba/zhangsan  0 0
# mount -a
# mount
//192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw)