samba 订阅
Samba
信息
操作系统
Windows
开发语言
C/C++
开源协议
GPLv3
Samba
Samba ,是种 自由软件 ,用来让UNIX系列的 操作系统 与 微软 Windows 操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协定做连结。在目前的版本(v3),不仅可存取及分享SMB的资料夹及打印机,本身还可以整合入Windows Server的 网域 、扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。 Samba是许多服务以及协议的实现,其包括 TCP/IP 上的 NetBIOS ( NBT )、SMB、 CIFS (SMB的增强版本)、 DCE/RPC 或者更具体来说 MSRPC (网络邻居协议套件)、一种 WINS服 务器(也被称作NetBIOS Name Server(NBNS))、NT 域协议套件(包括NT Domain Logons、Secure Accounts Manager(SAM)数据库、Local Security Authority(LSA)服务、NT-style打印服务(SPOOLSS)、 NTLM 以及近来出现的包括一种改进的Kerberos协议与改进的轻型目录访问协议( LDAP )在内的Active Directory Logon服务)。以上这些服务以及协议经常被错误地归类为NetBIOS或者SMB。Samba也能够用于共享打印机。 Samba能够为选定的Unix目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。
收起全文
精华内容
下载资源
问答
  • Samba

    千次阅读 2020-12-02 20:33:51
    samba服务简介1.1 smb协议1.2 cifs协议1.3 ftp 服务 与 samba 服务对比2. samba基本信息3. samba的安装与启用4. samba用户的建立5. samba用户访问家目录6. samba服务共享目录7. autofs+samba8. samba服务共享系统...

    1. samba服务简介

    1.1 smb协议

    smb(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

    1.2 cifs协议

    随着 Internet 的流行,Microsoft 希望将 SMB 这个协议扩展到 Internet 上去,成为 Internet 上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS (Common Internet File System),它使程序可以访问远程 Internet计算机上的文件并要求此计算机提供服务。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS 是公共的或开放的SMB 协议版本,并由 Microsoft 使用。SMB 协议在局域网上用于服务器文件访问和打印的协议。

    1.3 ftp 服务 与 samba 服务对比

    ftp 的优缺点:
    优点:文件传输、应用层协议、可跨平台
    缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件
    
    Samba 的特性:
    使用 smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件
    

    2. samba基本信息

    • 协议:SMB/CIFS
    • 软件名:smaba
    • 服务:smb 实现资源共享、权限验证 TCP :139、445
    • 配置文件(/etc/samba/)
      – smb.conf 主配置文件
      – smbusers 别名配置文件
    • 安全上下文:samba_share_t

    3. samba的安装与启用

    samba服务对selinux要求比较高:

    cat /etc/sysconfig/selinux
    #SELINUX=enforcing
    

    安装服务端、客户端、工具包:
    dnf install -y samba samba-client samba-common

    服务启动:
    systemctl enable --now smb

    服务启用:
    firewall-cmd --permanent --add-service=samba
    firewall-cmd --reload

    测试:
    smbclient -L //172.25.254.128当要输入root密码时直接回车

    4. samba用户的建立

    1. samba用户必须是在本地存在的用户
    2. samba用户的建立
    smbpasswd -a lee #添加用户
    pdbedit -L       #查看用户列表
    pdbedit -x lee   #删除用户
    

    5. samba服务共享目录

    mkdir /westos		#创建共享目录
    semanage fcontext -a -t samba_share_t '/westos(/.*)?'  #更改安全上下文
    restorecon -RvvF /westos							   #刷新
    
    vim /etc/samba/smb.conf		#编写配置文件
     [WESTOSDIR]   				#共享名称
     	comment = westos dir	#共享说明
     	path = /westos			#共享路径
    

    6. samba用户访问家目录

    当selinux开启时:

    setsebool -P samba_enable_home_dirs on

    在windows下:

    \\172.25.254.128  #访问
    net use           #查看访问记录
    net use * /del    #删除访问记录
    

    在linux下:

    smbclient //172.25.254.128/WESTOSDIR -U admin
    

    *. 综上实验:

    dnf install -y samba samba-client samba-common   
    #安装samba服务
    
    修改服务的配置文件:
    [root@node1 Desktop]# cd /etc/samba
    [root@node1 samba]# ls
    lmhosts  smb.conf  smb.conf.example
    [root@node1 samba]# cp smb.conf.example smb.conf
    cp: overwrite 'smb.conf'? y
    
    建立目录对其添加安全上下文:
    [root@node1 samba]# mkdir /westos
    [root@node1 samba]# semanage fcontext -a -t samba_share_t '/westos(/.*)?'
    [root@node1 samba]# restorecon -RvvF /westos/
    Relabeled /westos from unconfined_u:object_r:default_t:s0 to system_u:object_r:samba_share_t:s0
    
    指定家目录:
    vim smb.conf
    tail -n3 smb.conf
    	[WESTOSDIR]
    	comment = westos dir
    	path = /westos
    systemctl enable --now smb.service
    
    开启samba用户访问家目录:
    [root@node1 samba]# setsebool -P samba_enable_home_dirs on
    
    建立用户:
    useradd -s /sbin/nologin -M admin
    useradd -s /sbin/nologin -M lee
    useradd -s /sbin/nologin -M linux
    smbpasswd -a admin
    smbpasswd -a lee
    smbpasswd -a linux
    
    查看用户列表,删除用户:
    pdbedit -L
    pdbedit -x lee
    
    
    登陆查看:
    smbclient -L //172.25.254.128
    #WESTOSDIR       Disk      westos dir
    smbclient //172.25.254.128/WESTOSDIR -U admin
    #smb: \> ls
    
    挂载:
    mount -o username=admin,password=westos //172.25.254.128/WESTOSDIR /mnt
    df
    #//172.25.254.128/WESTOSDIR   7353344 4542516   2810828  62% /mnt
    [root@node1 samba]# cd /westos
    [root@node1 westos]# ls
    [root@node1 westos]# touch file
    [root@node1 westos]# ls -LR /mnt
    /mnt:
    file
    

    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    7. autofs+samba

    autofs:
    在客户端实现自动挂载卸载的软件

    配置方式:

    vim /etc/auto.master
    最终挂载点的上层目录  自定义子策略文件
    

    编写子策略文件:

    vim 自定义子策略文件(/etc/auto.samba)
    最终挂载点 挂载参数 挂载资源
    

    重启服务:

    systemctl restart autofs
    

    测试:
    再开一台主机,172.25.254.28:

    dnf install -y autofs
    
    vim /etc/auto.master
    [root@westos_student28 ~]# head /etc/auto.master
    #
    # Sample auto.master file
    # This is a 'master' automounter map and it has the following format:
    # mount-point [map-type[,format]:]map [options]
    # For details of the format look at auto.master(5).
    #
    /misc	/etc/auto.misc
    /mnt    /etc/auto.samba
    
    
    vim /etc/auto.samba
    [root@westos_student28 ~]# cat /etc/auto.samba
    samba -fstype=cifs,username=lee,password=westos ://172.25.254.128/WESTOSDIR
    

    在172.25.254.128上:

    systemctl start firewalld
    firewall-cmd --permanent --add-service=samba
    firewall-cmd --reload
    

    在172.25.254.28上:

    systemctl restart autofs.service
    
    [root@westos_student28 ~]# cd /mnt
    [root@westos_student28 mnt]# ls
    [root@westos_student28 mnt]# cd samba
    [root@westos_student28 samba]# ls
    file
    [root@westos_student28 samba]# df
    #//172.25.254.128/WESTOSDIR   7353344  4542428   2810916  62% /mnt/samba
    
    vim /etc/autofs.conf
    #timeout = 3
    
    systemctl restart autofs.service
    df   #过3秒自动卸除挂载
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    8. samba服务共享系统目录

    打开只读共享:

    vim /etc/samba/smb.conf
            [WESTOSDIR]
            comment = westos dir
            path = /mnt
    systemctl restart smb.service
    
    setsebool -P samba_export_all_ro on
    getsebool -a | grep samba
    smbclient //172.25.254.128/WESTOSDIR -U admin
    #查看到的是/mnt下的文件
    

    在这里插入图片描述
    在这里插入图片描述

    9. samba的访问控制

    host allow 当写到的单独共享时对此共享生效
    
    host deny   当写到【GLOBAL】时对samba整体有效 
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    10. samba的常用配置参数

    vim /etc/samba/smb.conf

    writable = yes 				##可写
    write list = westos 		##指定用户可写
    write list = +westos 		##指定组可写
    write list = @westos		##指定组可写
    valid users = lee 			##指定访问用户
    valid users = +lee|@lee 	##指定访问组
    browseable = yes|no 		##是否隐藏共享
    map to guest = bad user 	##写到全局设定中
    guest ok = yes		 		##允许匿名用户访问
    admin users = lee 			##指定此共享的超级用户身份
    

    练习:

    参考,很细致!

    writable = yes 在/mnt可写

    write list = lee 指定用户可写

    write list = +westos 指定组可写

    11. samba的多用户挂载

    在客户端如果用普通的挂载方式,没有通过用户验证的人也可以访问samba服务。

    解决方案:

    在172.25.254.128上:

    dnf install cifs-utils.x86_64 -y    #安装服务
    
    vim /root/smbpass   				#编辑认证文件
    username=lee
    password=westos
    

    挂载:

    mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.128/WESTOSDIR /mnt
    挂载时指定认证文件、认证类型 支持多用户
    

    没有认证的用户不可以访问:

    [root@westos_student28 ~]# cd /mnt
    [root@westos_student28 mnt]# ls
    file  file1  file2  file3  test  test1
    [root@westos_student28 mnt]# cd
    [root@westos_student28 ~]# su - westos
    Last login: Sun Nov 29 08:53:55 CST 2020 on tty1
    [westos@westos_student28 ~]$ cd /mnt
    [westos@westos_student28 mnt]$ ls
    ls: cannot open directory '.': Permission denied
    

    添加认证用户:

    [westos@westos_student28 mnt]$ cifscreds add -u admin 172.25.254.128
    Password: 
    [westos@westos_student28 mnt]$ ls
    file  file1  file2  file3  test  test1
    [westos@westos_student28 mnt]$ touch yxy
    [westos@westos_student28 mnt]$ ls
    file  file1  file2  file3  test  test1  yxy
    
    展开全文
  • samba

    千次阅读 2019-06-29 11:25:10
    一、samba简介 Samba最大的功能可用于Linux与windows系统直接的文件共享和打印共享,Samba既可用于windows与Linux之间的文件共享,也可用于Linux与Linux之间的资源共享,由于NFS的出现,因而 Samba更多用在Linux与...

     

    一、samba简介

    Samba最大的功能可用于Linux与windows系统直接的文件共享和打印共享,Samba既可用于windows与Linux之间的文件共享,也可用于Linux与Linux之间的资源共享,由于NFS的出现,因而 Samba更多用在Linux与windows之间的数据共享上面。

      Samba服务器可实现如下功能:

    • WINS和DNS服务;
    • 网络浏览服务;
    • Linux和Windows域之间的认证和授权;
    • UNICODE字符集和域名映射;
    • 满足CIFS协议的UNIX共享等。

     

    二、samba服务的安装

    1、环境准备

    # uname -r
    2.6.32-642.11.1.el6.x86_64
    # uname -m
    x86_64
    # cat /etc/redhat-release 
    CentOS release 6.8 (Final)

    # getenforce 
    Disabled

    #/etc/init.d/iptables stop

    2、执行yum安装(需配置好yum源)

    yum install samba samba-client samba-swat -y

    3、检查是否安装成功

    #rpm -qa|grep samba

    samba-common-3.6.23-36.el6_8.x86_64
    samba-3.6.23-36.el6_8.x86_64
    samba-winbind-3.6.23-36.el6_8.x86_64
    samba-client-3.6.23-36.el6_8.x86_64
    samba-swat-3.6.23-36.el6_8.x86_64
    samba-winbind-clients-3.6.23-36.el6_8.x86_64

    4、启动samba服务并配置开机启动

    # /etc/init.d/smb start
    启动 SMB 服务: [确定]

    # netstat -lntup|grep smbd
    tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 25190/smbd 
    tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 25190/smbd 
    tcp 0 0 :::445 :::* LISTEN 25190/smbd 
    tcp 0 0 :::139 :::* LISTEN 25190/smbd

    将samba服务添加到系统自启动:

    # chkconfig --level 35 smb on

    # chkconfig --list | grep smb

    smb 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭

     

    三、samba服务的配置

    Samba服务配置主要是指/etc/samba/smb.conf文件的配置。

     

    1、公共匿名类共享目录的配置(即匿名账户访问共享目录或文件)

    #vim /etc/samba/smb.conf

      workgroup = WORKGROUP      //定义工作组,也就是windows下的工作组

      server string = Lmz Samba Server Version %v              //定义Samba服务器的简要说明  

      netbios name = LmzSamba                                         //定义windows中显示出来的计算机名称

       log file = /var/log/samba/log.%m        //定义Samba用户的日志文件,%m代表客户端主机名

       security = share                               //共享级别,用户不需要账号和密码即可访问

      [share]       //建立共享目录模块

        comment = share Stuff       //对共享目录说明,可自定义
        path = /share        //指定共享目录的路径
        public = yes              //所有人可查看,等效于guest ok =yes
        writable = yes      //有可写权限

    • 新建/share目录,并设置属组属主为nobody。

    #mkdir /share

    #chown -R nobody:nobody /share/

    #/etc/init.d/smb restart    //重启服务
    #/etc/init.d/nmb restart

    • 测试smb.conf配置是否正确:

    #testparm 
    Load smb config files from /etc/samba/smb.conf
    rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
    Processing section "[homes]"
    Processing section "[printers]"
    Processing section "[share]"
    WARNING: The security=share option is deprecated
    Loaded services file OK.
    ......................................

    • 访问samba服务器的共享文件:

    1)、centOS系统测试:

    [root@zhang share]# smbclient //127.0.0.1/share
    WARNING: The security=share option is deprecated
    Enter root's password:     //由于匿名访问不需要密码,可直接回车即可
    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
    Server not using user level security and no password supplied.
    smb: \> ls
    . D 0 Mon Mar 27 10:35:40 2017
    .. DR 0 Mon Mar 27 10:34:42 2017
    a.txt 0 Mon Mar 27 10:35:33 2017
    aa.py 0 Mon Mar 27 10:35:40 2017

    46201 blocks of size 2097152. 40904 blocks available
    smb: \>q    //退出访问

    2)、windows系统下的共享访问

    \\172.172.0.10\share

     

    2、按权限对目录进行分组访问(配置用户名和密码访问的samba服务)

    # useradd -s /sbin/nologin renli     //先建立系统用户
    # passwd  renli    //设置密码

    # smbpasswd -a renli     //将用户添加到samba账户中

     

     smbpasswd:
             -a Sys_User: 添加系统用户为samba用户
             -d :禁用用户
             -e: 启用用户
             -x: 删除用户

     

    New SMB password:
    Retype new SMB password:
    Added user renli.

    pdbedit -a -u renli   //也可以创建samba账户

     

    smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。
    tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:
    pdbedit –a username:新建Samba账户。
    pdbedit –x username:删除Samba账户。
    pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
    pdbedit –Lv:列出Samba用户列表详细信息。
    pdbedit –c “[D]” –u username:暂停该Samba用户账号。
    pdbedit –c “[]” –u username:恢复该Samba用户账号。

     

     

    3、修改主配置文件

    # vi /etc/samba/smb.conf

    修改:

    security = user     //修改共享级别为用户访问

    hosts allow = 127.  172.172.0   //只允许127.0.0.0与172.172.0.0网段主机访问

    [renli]
    comment = renli share
    path = /share   //共享目录路径
    public = no    //不公开,受限浏览
    writable = yes
    directory mask = 0755   //创建目录的权限掩码
    create mask = 0644    //创建文件的权限掩码
    valid users = renli,root   //被许可访问该共享目录的用户账号
    write list = renli,root    //允许写入的用户账号,注意如果不能写入就是系统共享文件权限不足,修改即可。

     

     

    全局配置说明:

    netbios name = MYSERVER  # 设置出现在“网上邻居”中的主机名

    hosts allow = 127.  192.168.12.  192.168.13. # 用来设置允许的主机,如果在前面加”;”则表示允许所有主机

    log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name

    max log size = 50 # 指定日志的最大容量,单位是K

    自定义共享:

         [shared_name] #共享名称
    path = /path/to/share_directory #共享路径
    comment = Comment String # 注释信息
    guest ok = {yes|no} | public = {yes|no} # 是否启用来宾账号
    writable = {yes|no} |  read only = {yes|no} # 共享目录是否可写
    write list = +GROUP_NAME  # 允许可写的用户列表,前面有+是代表允许可写的组
    测试配置文件是否有语法错误,以及显示最终生效的配置:
         testparm

     

    重新加载samba服务:

    # service smb reload
    重新载入 smb.conf 文件: [确定]

    在windows系统下测试:

      打开我的电脑,在地址栏中输入\\IP,弹出用户登陆框,如图所示:

    输入用户名和密码即可访问。如不能新建文件或文件夹,写入数据,则是共享系统文件权限不够。

     

    3、设置用户映射及访问地址限制

    #vim /etc/samba/smbusers

    添加: 用户=别名1 别名2 别名3

    renli = u1 u2 u3

    #vim /etc/samba/smb.conf

    [global]

    添加:

    username map = /etc/samba/smbusers

    hosts allow = 192.168.1. 192.168.2. 127.     //允许访问的IP地址段

    hosts deny = 192.168.1. 192.168.2.       //拒绝访问的IP地址段

    重新加载服务:

    /etc/init.d/smb reload

    使用别名访问共享:

    smbclient -U u1 //172.172.0.10/renli

    使用mount挂载共享文件夹到本地:

    mount -o username=u1 //172.172.0.10/renli /media

    如报错:

    # mount -o username=u1 //172.172.0.10/renli /media
    mount: block device //172.172.0.10/renli is write-protected, mounting read-only
    mount: cannot mount block device //172.172.0.10/renli read-only   //不能加载块设备

    解决:

    yum install cifs-utils

    重新挂载读写模式:

    # mount -o username=u1,rw //172.172.0.10/renli /media
    Password:             //输入密码即可挂载成功

     

    samba原文

    展开全文
  • samba为script文件,可启动,停止Samba服务器或回报目前的状态。 Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为...
  • Centos samba服务搭建

    万次阅读 2021-03-07 09:48:18
    Centos samba服务搭建 1.安装samba yum install samba 2.备份samba配置文件 mv /etc/samba/smb.conf /etc/samba/smb.conf.bak 3.查看linux用户 id user 4.为该用户配置samba密码 pdbedit -a -u user 5.创建共享...

    Centos samba服务搭建

    1.安装samba

    yum install samba
    

    2.备份samba配置文件

    mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
    

    3.查看linux用户

    id user
    

    4.为该用户配置samba密码

    pdbedit -a -u user
    

    5.创建共享文件夹

    mkdir /home/database
    

    6.考虑SELinux安全

    chown -Rf user:user /home/database
    semanage fcontext -a -t samba_share_t /home/database
    restorecon -Rv /home/database;
    getsebool -a |grep samba
    setsebool -P samba_enable_home_dirs on
    

    7.配置samba服务

    vim /etc/samba/smb.conf
    [global] 
    workgroup = MYGROUP 
    server string = Samba Server Version %v 
    log file = /var/log/samba/log.%m 
    max log size = 50 
    security = user 
    passdb backend = tdbsam 
    load printers = yes 
    cups options = raw 
    [database] 
    comment = Do not arbitrarily modify the database file 
    path = /home/database 
    public = no 
    writable = yes
    

    8.linux防火墙设置

    systemctl restart smb
    systemctl enable smb
    systemctl restart firewalld
    firewall-cmd --permanent --zone=public --add-port=445/tcp
    firewall-cmd --reload
    systemctl restart firewalld
    

    9.windows共享访问
    window win+R
    输入\linux虚拟机IP进入共享文件夹(linux上ifconfig查看IP地址)
    10.后记
    之前本人在阿里云服务器上尝试上述操作,配置好发现无法共享,经研究学习发现跨网段实现samba较为复杂,在个人电脑上安装linux虚拟机实现则没有问题,望读者了解请勿踩坑

    展开全文
  • 配置samba文档samba.txt

    2019-12-02 12:52:33
    samba配置
  • 在Redhat下搭建Samba服务器的具体过程步骤以及遇到问题的处理方案
  • samba-4.8.3 samba-3.6.9

    2020-12-09 10:16:37
    samba-4.8.3.tar.gz、samba-3.6.9.tar.gz,超级超级超级超级超级超级超级超级超级超级超级超级超级超级好用
  • 在linux中安装Samba服务器配置方法。
  • samba服务samba教程

    2013-08-23 00:36:41
    samba服务教程
  • Samba 服务搭建

    2020-12-30 19:04:34
    Samba服务搭建
  • samba服务器

    2014-08-10 21:05:27
    samba服务器

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,339
精华内容 30,535
关键字:

samba