Samba文件共享服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Samba文件共享服务相关的知识,希望对你有一定的参考价值。

Samba文件共享服务

一、简介

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

二、Samba服务基础

软件包:

协议:SMP(TCP139)CIFS(445)

配置文件目录:/etc/samba/smb.conf

实验准备:一台Linux虚拟机、一台windows7虚拟机

三、Samba服务器配置

  1. 匿名访问

首先介绍下如何匿名访问samba服务器

[[email protected] ~]# rpm -ivh /mnt/Packages/samba-3.6.9-164.el6.x86_64.rpm      //使用rpm一键式安装samba的软件包(这里要先检查自己的光盘是否挂载好,才能进行安装)
[[email protected] ~]# cd /etc/samba/      //rpm 一键式安装软件的配置文件默认存放在/etc目录下
[[email protected] samba]# ls          
lmhosts  smb.conf  smbusers            //这里使samba的几个相关的配置文件

为预防我们在进行配置文件修改的过程中出现错误,服务不能正常启动时不知道怎么处理,这里我们对配置文件进行过滤备份

[[email protected] samba]# ls
lmhosts  smb.conf  smbusers   //smb.conf是samba服务的主配置文件
[[email protected] samba]# mv smb.conf smb.conf.bak      //重命名smb.conf为smb.conf.bak
[[email protected] samba]# ls
lmhosts  smb.conf.bak  smbusers    
[[email protected] samba]# grep -v "#" smb.conf.bak > smb.conf    //筛选过滤掉#注释的内容,把剩余的内容重定向生成smb.conf配置文件 
[[email protected] samba]# ls
lmhosts  smb.conf  smb.conf.bak  smbusers    //这里就多出了一个smb.conf配置文件

下面我们可以查看下刚刚过滤筛选出的配置文件

[[email protected] samba]# vim smb.conf   //进行配置文件的修改
                                  //这里的第一行不需要,我们直接删除(dd)
[global]                //全局配置

        workgroup = MYGROUP
        server string = Samba Server Version %v

;       netbios name = MYSERVER

;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
;       hosts allow = 127. 192.168.12. 192.168.13.

        log file = /var/log/samba/log.%m
        max log size = 50

        security = user           //安全系统=user(用户验证),这里需要修改为share(共享)
        passdb backend = tdbsam

           //这里G跳到行尾,o在下一行添加 如下内容
        [share]              //共享文件名
        path=/opt/abc       //共享目录的路径
        public=yes          //共享文件夹,允许公共访问
        browseable=yes      //能够访问
        writable=yes        //能够写入
        create mask=0644    
        directory mask=0755     //给权限755

上面编辑完毕后,末行模式wq保存退出

[[email protected] samba]# ls /opt      //查看/opt目录下是否有abc目录
rh
[[email protected] samba]# mkdir /opt/abc     //创建abc目录在/opt目录下
[[email protected] samba]# chmod 777 /opt/abc     //给abc目录777的满权限
[[email protected] samba]# service iptables stop      //关闭防火墙
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
[[email protected] samba]# setenforce 0        //关闭增强性安全功能
[[email protected] samba]# service smb start     //开启smb文件共享服务功能
启动 SMB 服务:                                            [确定]
[[email protected] samba]# netstat -antp        //查看端口和服务
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      5019/smbd
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1200/rpcbind
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1455/sshd
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1305/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1537/master
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      5019/smbd
tcp        0      0 0.0.0.0:57663               0.0.0.0:*                   LISTEN      1274/rpc.statd
tcp        0    224 192.168.100.4:22            192.168.100.15:62225        ESTABLISHED 4418/sshd
tcp        0      0 :::139                      :::*                        LISTEN      5019/smbd
tcp        0      0 :::111                      :::*                        LISTEN      1200/rpcbind
tcp        0      0 :::22                       :::*                        LISTEN      1455/sshd
tcp        0      0 ::1:631                     :::*                        LISTEN      1305/cupsd
tcp        0      0 :::52215                    :::*                        LISTEN      1274/rpc.statd
tcp        0      0 ::1:25                      :::*                        LISTEN      1537/master
tcp        0      0 :::445                      :::*                        LISTEN      5019/smbd

上面可以看到 tcp协议的139端口和445端口都有了

然后此时就可以用win7的客户机来测试看能不能访问linux了

技术分享图片

技术分享图片

[[email protected] samba]# cd /opt/abc  
[[email protected] abc]# ls               //查看/opt/abc下是否有刚刚写入的mylife文档
mylife.txt
[[email protected] abc]# ls -l         //长格式显示文件下的内容信息
总用量 4
-rw-r--r--. 1 nobody nobody 15 3月  29 01:22 mylife.txt   //可以看到属主属组是nobody 其实也就是匿名
  1. 身份验证访问
[[email protected] samba]# vim smb.conf
        security = share     //这里要修改为user,也就是身份验证访问
        passdb backend = tdbsam

        [zyc]                //共享目录名
        path=/opt/zyc        //共享目录路径 
        browseable=yes       //能够访问
        create mask=0644
        directory mask=0755      //给予权限
        valid users=zhangsan, lisi     //仅允许zhangsan,lisi能够访问
        write list=zhangsan            //仅允许zhangsan能够写入

然后创建用户zhangsan、lisi

[[email protected] samba]# useradd zhangsan    //创建用户zhangsan
[[email protected] samba]# smbpasswd -a zhangsan   //添加smb用户zhangsan的密码
New SMB password:
Retype new SMB password:                //输入密码(这里的密码是访问samba服务器的登录密码)
Added user zhangsan.      //添加用户zhangsan 
[[email protected] samba]# useradd lisi     
[[email protected] samba]# smbpasswd -a lisi
New SMB password:
Retype new SMB password:
Added user lisi.              //添加用户Lisi
[[email protected] samba]# pdbedit -L     //查看smb的用户
zhangsan:500:
lisi:501:
[[email protected] samba]# cd /opt   
[[email protected] opt]# ls             //查看/opt目录下是否有zyc目录
abc  rh
[[email protected] opt]# mkdir zyc      //创建目录zyc
[[email protected] opt]# chmod 777 zyc     //给zyc777的满权限

修改好之后,重启smb服务,同时win7客户机要清空缓存

[[email protected] samba]# service smb restart    //重启smb服务
关闭 SMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
[[email protected] samba]# service smb restart
关闭 SMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
[[email protected] samba]# service smb restart
关闭 SMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]

技术分享图片

技术分享图片

此时zhangsan,lisi 都可以进行登录,但是lisi不能在zyc目录下写入文件或文档

技术分享图片

技术分享图片

  1. 别名(账号名映射)
[[email protected] samba]# ls                  
lmhosts  smb.conf  smb.conf.bak  smbusers
[[email protected] samba]# vim smbusers           
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin             
nobody = guest pcguest smbguest
zhangsan= c01 c02       //建立zhangsan用户的别名 c01 c02
[[email protected] samba]# vim smb.conf

        security = user
        passdb backend = tdbsam
        username map=/etc/samba/smbusers      

保存退出后,重启smb服务,并且在win7客户机上清空缓存 然后此时在访问smb服务器

技术分享图片

技术分享图片

[[email protected] samba]# cd /opt
[[email protected] opt]# ls
abc  rh  zyc
[[email protected] opt]# cd zyc
[[email protected] zyc]# ls -l
总用量 4
-rw-r--r--. 1 zhangsan zhangsan 13 3月  29 02:26 222.txt    //可以看到是以zhangsan的身份建立的文档

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

Linux之SAMBA文件共享服务器

关于samba共享的问题

samba文件共享服务笔记

samba文件共享服务笔记

linux下实现文件共享:搭建samba服务器

Samba文件共享服务