精华内容
下载资源
问答
  • samba服务器搭建

    2019-05-10 15:11:03
    linux系统搭建samba服务器,过程超详细,欢迎各位下载!!!
  • Samba服务器搭建

    2014-08-14 15:31:03
    Samba服务器搭建 Samba是一个工具套件,在Unix/Linux上实现SMB协议。SMB协议通常是被Windows系列用来实现磁盘和打印机共享。目前Samba多数用于Windows和Unix/Linux资源共享,主要是共享文件和打印机,类似windows上...
  • 文章目录1、检查网络配置2、下载samba3、创建一个文件夹4、添加Samba用户5、修改配置文件6、重启samba7、连接网络 1、检查网络配置 打开linux,ping一下百度。(一般虚拟机配置都没啥问题) 然后输入 ifconfig ...

    1、检查网络配置

    打开linux,ping一下百度。(一般虚拟机配置都没啥问题)
    然后输入

    ifconfig
    

    在这里插入图片描述
    记住这段代码。

    2、下载samba

    sudo apt-get install samba samba-common
    

    3、创建一个文件夹

    mkdir   study
    

    修改文件夹权限

    sudo chmod 777 study
    

    4、添加Samba用户

    sudo smbpasswd -a xhh(xhh代表你自己linux系统的名字,各有不同)
    

    5、修改配置文件

    sudo vi /etc/samba/smb.conf
    

    将这段代码添之末尾1

    [share]
    comment = share folder
    browseable = yes
    path = /home/joey/study(刚刚创建的文件夹名字)
    create mask = 0700
    directory mask = 0700
    valid users = xhh(名字)
    force user  = xhh(名字)
    force group = xhh(名字)
    public = yes
    available = yes
    writable = yes
    

    在这里插入图片描述

    有的这个还有一个;加一段话,我直接删了 没啥影响,不删的我也不知道记得改文件夹名字和linux系统名字
    保存退出

    6、重启samba

    sudo service smbd restart
    

    7、连接网络

    打开我的电脑,映射网络驱动
    在这里插入图片描述

    在这里插入图片描述

    输入你刚才linux系统上的IP地址和一个 share 记得反斜杠。

    然后完成如果弹出一个窗口叫你输入账号 密码
    输入的你虚拟机账号和密码即可!!!
    在这里插入图片描述
    在这里插入图片描述

    当你在windows上面创建一个文件的时候,你的linux系统上也会对应的创建一个文件,这样我们就可以直接在windows上编辑linux里面的文件了。

    展开全文
  • Samba服务器搭建(基础篇)

    千次阅读 2020-02-04 20:41:15
    文章目录samba简介搭建服务安装samba软件包配置smb.conf文件创建用户,共享目录启动服务连接测试疑难杂症 samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server...



    samba简介

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

    摘自:百度百科

    注:多数用于Linux跟Windows之间的文件共享。

    samba两个主要进程是:smbdnmbd

    两个进程的主要功能,如下:

    • smbd

      文件和打印服务、授权与被授权

    • nmbd(类似于DNS)

      名称解析、浏览服务


    搭建服务

    实验环境:

    • CentOS-7-x86_64-DVD-1708
    • win10
    • VMware Workstation 15 Pro

    实验目的:
         学会搭建简单的samba服务



    安装samba软件包

    [root@localhost ~]# yum install -y samba* # 偷懒安装所有的依赖组件
    [root@localhost ~]# rpm -qa | grep samba # 查看所安装的组件
    samba-common-4.6.2-8.el7.noarch
    samba-common-libs-4.6.2-8.el7.x86_64
    samba-python-4.6.2-8.el7.x86_64
    samba-libs-4.6.2-8.el7.x86_64
    samba-common-tools-4.6.2-8.el7.x86_64
    samba-winbind-modules-4.6.2-8.el7.x86_64
    samba-client-4.6.2-8.el7.x86_64
    samba-winbind-4.6.2-8.el7.x86_64
    samba-client-libs-4.6.2-8.el7.x86_64
    samba-4.6.2-8.el7.x86_64
    samba-krb5-printing-4.6.2-8.el7.x86_64
    [root@localhost ~]# 
    



    配置smb.conf文件

    编辑配置文件,添加一个以test作为网络共享文件名的共享目录。

    [root@localhost ~]# vim /etc/samba/smb.conf
    # See smb.conf.example for a more detailed config file or
    # read the smb.conf manpage.
    # Run 'testparm' to verify the config is correct after
    # you modified it.
    
    [global]
        workgroup = SAMBA
        security = user
    
        passdb backend = tdbsam
    
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
    
    [homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
    
    [printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
    
    [print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = root
        create mask = 0664
        directory mask = 0775
        
    [test] # 网络文件名
        comment = This is a test directory # 提示信息
        path = /data/smb # 指定共享路径
        browseable = Yes # 可浏览
        writable = Yes # 可写
    



    创建用户,共享目录

    [root@localhost ~]# useradd -s /sbin/nologin -d /home/test test # 禁止本地登录,指定家目录
    [root@localhost ~]# passwd test
    Changing password for user test.
    New password: 
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    [root@localhost ~]# smbpasswd -a test # 将本地用户跟samba用户进行映射
    New SMB password:
    Retype new SMB password:
    Added user test.
    [root@localhost ~]# mkdir -p /data/smb # 创建共享目录
    [root@localhost ~]# touch /data/smb/welcome.txt # 创建个欢迎文件
    



    启动服务

    [root@localhost ~]# setenforce 0 # 关闭SELinux
    [root@localhost ~]# getenforce 
    Permissive
    [root@localhost ~]# firewall-cmd --permanent --add-service=samba # 让防火墙放行samba服务
    success
    [root@localhost ~]# firewall-cmd --reload # 重启防火墙
    success
    [root@localhost ~]# systemctl start smb # 启动samba服务
    [root@localhost ~]# 
    [root@localhost ~]# systemctl status smb # 查看samba服务的状态
    ● smb.service - Samba SMB Daemon
       Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
       Active: active (running) since Tue 2020-02-04 06:37:24 EST; 2min 15s ago
     Main PID: 2766 (smbd)
       Status: "smbd: ready to serve connections..."
       CGroup: /system.slice/smb.service
               ├─2766 /usr/sbin/smbd
               ├─2767 /usr/sbin/smbd
               ├─2768 /usr/sbin/smbd
               └─2769 /usr/sbin/smbd
    
    Feb 04 06:37:24 localhost.localdomain systemd[1]: Starting Samba SMB Daemon...
    Feb 04 06:37:24 localhost.localdomain smbd[2766]: [2020/02/04 06:37:24.443822,  0] ../lib/util/b...dy)
    Feb 04 06:37:24 localhost.localdomain systemd[1]: Started Samba SMB Daemon.
    Feb 04 06:37:24 localhost.localdomain smbd[2766]:   STATUS=daemon 'smbd' finished starting up an...ons
    Hint: Some lines were ellipsized, use -l to show in full.
    [root@localhost ~]# 
    



    连接测试

    1. Windows+R 输入 \\IP

      1

    2. 输入用户名和密码
      在这里插入图片描述

    3. 成功登陆

      3

    注: 一个最简单、基本的samba服务器就搭建完成了。



    疑难杂症

    1. 创建文件或文件夹,提示权限不够

      解决方法:

      更改用户对该共享目录的权限

      • 方法一

        [root@localhost data]# chown -R test smb/
        [root@localhost data]# ll
        total 0
        drwxr-xr-x. 2 test root 42 Feb  4 06:47 smb
        [root@localhost data]# 
        
      • 方法二

        [root@localhost ~]# setfacl -m user:test:rwx /data/smb/
        [root@localhost ~]# getfacl /data/smb/
        getfacl: Removing leading '/' from absolute path names
        # file: data/smb/
        # owner: root
        # group: root
        user::rwx
        user:test:rwx
        group::r-x
        mask::rwx
        other::r-x
        [root@localhost ~]#
        

    1. 输入用户名和密码之后,出现下图所示:

      4

      解决方法:

      请查看SELinux的状态(设置为关闭)和防火墙状态(放行samba服务)。



    建立连接和清除缓存整个过程,有点繁琐。为了偷懒,我用C语言写一个操作samba服务的小程序。有兴趣的同学可以看一下。
    Samba连接小工具

    展开全文
  • Samba服务器搭建.doc

    2020-01-10 14:16:56
    搭建Samba服务器,实现本地主机与虚拟机的资源共享。报告内容包括了具体的实验步骤,以及我所遇到的一些问题的解决办法,有兴趣的欢迎下载哦!
  • CentOS7下Samba服务器搭建

    千次阅读 2020-03-16 16:37:38
    供自己复习使用。大部分摘自网络,侵权立删。 ...utm_source=distribute.pc_relevant.none-task https://blog.csdn.n...

    供自己复习使用。大部分摘自网络,侵权立删。
    https://blog.csdn.net/qq_38410730/article/details/80500920?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

    https://blog.csdn.net/weixin_40806910/article/details/81917077

    http://www.apelearn.com/study_v2/chapter24.html

    对于本人来说,知道Samba是什么,用来干什么,怎么用就够了。。。

    samba是什么

    samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互。

    安装Samba
    通过yum 安装

    yum -y install samba
    

    Samba服务器相关的配置文件

    • /etc/samba/smb.conf
      这是samba的主要配置文件,基本上仅有这个文件,而且这个配置文件本身的说明非常详细。主要的设置包括服务器全局设置,如工作组、NetBIOS名称和密码等级,以及共享目录的相关设置,如实际目录、共享资源名称和权限等两大部分。
    • /etc/samba/lmhosts
      早期的 NetBIOS name 需额外设定,因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 檔。 事实上它有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name,因此这个档案不设定也无所谓。
    • /etc/sysconfig/samba
      提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。
      /etc/samba/smbusers
      由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定
    • /var/lib/samba/private/{passdb.tdb,secrets.tdb}
      管理 Samba 的用户账号/密码时,会用到的数据库档案;
    • /usr/share/doc/samba-<版本>
      这个目录包含了 SAMBA 的所有相关的技术手册

    至于常用的脚本文件案方面,若分为服务器与客户端功能,则主要有底下这几个数据:

    • /usr/sbin/{smbd,nmbd}:服务器功能,就是最重要的权限管理 (smbd) 以及 NetBIOS name 查询 (nmbd) 两个重要的服务程序;

    • /usr/bin/{tdbdump,tdbtool}:服务器功能,在 Samba 3.0
      以后的版本中,用户的账号与密码参数已经转为使用数据库了!Samba 使用的数据库名称为 TDB (Trivial DataBase)。
      既然是使用数据库,当然要使用数据库的控制指令来处理啰。tdbdump 可以察看数据库的内容,tdbtool 则可以进入数据库操作接口直接手动修改帐密参数。不过,你得要安装 tdb-tools 这个软件才行;

    • /usr/bin/smbstatus:服务器功能,可以列出目前 Samba 的联机状况, 包括每一条 Samba 联机的 PID, 分享的资源,使用的用户来源等等,让你轻松管理 Samba 啦;

    • /usr/bin/{smbpasswd,pdbedit}:服务器功能,在管理 Samba 的用户账号密码时, 早期是使用 smbpasswd 这个指令,不过因为后来使用 TDB 数据库了,因此建议使用新的 pdbedit 指令来管理用户数据;

    • /usr/bin/testparm:服务器功能,这个指令主要在检验配置文件 smb.conf 的语法正确与否,当你编辑过 smb.conf
      时,请务必使用这个指令来检查一次,避免因为打字错误引起的困扰啊!

    • /sbin/mount.cifs:客户端功能,在 Windows 上面我们可以设定『网络驱动器机』来连接到自己的主机上面。在 Linux 上面,我们则是透过 mount (mount.cifs) 来将远程主机分享的档案与目录挂载到自己的 Linux 主机上面哪!

    • /usr/bin/smbclient:客户端功能,当你的 Linux主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用 smbclient来查看啦!这个指令也可以使用在自己的 SAMBA 主机上面,用来查看是否设定成功哩!

    • /usr/bin/nmblookup:客户端功能,有点类似 nslookup 啦!重点在查出 NetBIOS name 就是了

    • /usr/bin/smbtree:客户端功能,这玩意就有点像 Windows
      系统的网络上的芳邻显示的结果,可以显示类似『靠近我的计算机』之类的数据, 能够查到工作组与计算机名称的树状目录分布图!

    配置文件说明

    Samba的主配置文件为/etc/samba/smb.conf
    
    主配置文件由两部分构成
    
        Global Settings
    
      该设置都是与Samba服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的。
    
        Share Definitions 
    
      该设置针对的是共享目录个别的设置,只对当前的共享资源起作用。
    
    全局参数:
    
    #==================Global Settings ===================
    [global]
    
    config file = /usr/local/samba/lib/smb.conf.%m
    说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台 samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在 smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由 smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
    
    workgroup = WORKGROUP
    说明:设定 Samba Server 所要加入的工作组或者域。
    
    server string = Samba Server Version %v
    说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
    
    netbios name = smbserver
    说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。
    
    interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
    说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
    
    hosts allow = 127. 192.168.1. 192.168.10.1
    说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
    例如:hosts allow=172.17.2.EXCEPT172.17.2.50
    表示容许来自172.17.2.*的主机连接,但排除172.17.2.50
    hosts allow=172.17.2.0/255.255.0.0
    表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
    hosts allow=M1,M2
    表示容许来自M1和M2两台计算机连接
    hosts allow=@pega
    表示容许来自pega网域的所有计算机连接
    
    max connections = 0
    说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
    
    deadtime = 0
    说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
    
    time server = yes/no
    说明:time server用来设置让nmdb成为windows客户端的时间服务器。
    
    log file = /var/log/samba/log.%m
    说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。
    
    max log size = 50
    说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。
    
    security = user
    说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
    1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
    2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
    3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用 Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
    4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
    
    passdb backend = tdbsam
    说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。	这里和上文说明的配置目录有冲突,上面的是对的。这个应该是低版本位置
    1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
    2.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.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”
    
    encrypt passwords = yes/no
    说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
    
    smb passwd file = /etc/samba/smbpasswd
    说明:用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。
    
    username map = /etc/samba/smbusers
    说明:用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
    
    guest account = nobody
    说明:用来设置guest用户名。
    
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。
    
    domain master = yes/no
    说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理跨子网域的浏览服务。
    
    local master = yes/no
    说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。如果设为no,则永远不会成为本地网域主浏览器。但是即使设置为yes,也不等于该Samba Server就能成为主浏览器,还需要参加选举。
    
    preferred master = yes/no
    说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。如果该参数指定为yes时,最好把domain master也指定为yes。使用该参数时要注意:如果在本Samba Server所在的子网有其他的机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时,那么这些机器将会因为争夺主浏览器而在网络上大发广播,影响网络性能。
    如果同一个区域内有多台Samba Server,将上面三个参数设定在一台即可。
    
    os level = 200
    说明:设置samba服务器的os level。该参数决定Samba Server是否有机会成为本地网域的主浏览器。os level从0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果设置为0,则意味着Samba Server将失去浏览选择。如果想让Samba Server成为PDC,那么将它的os level值设大些。
    
    domain logons = yes/no
    说明:设置Samba Server是否要做为本地域控制器。主域控制器和备份域控制器都需要开启此项。
    
    logon script = %u.bat
    说明:当使用者用windows客户端登陆,那么Samba将提供一个登陆档。如果设置成%u.bat,那么就要为每个用户提供一个登陆档。如果人比较多, 那就比较麻烦。可以设置成一个具体的文件名,比如start.bat,那么用户登陆后都会去执行start.bat,而不用为每个用户设定一个登陆档了。 这个文件要放置在[netlogon]的path设置的目录路径下。
    
    wins support = yes/no
    说明:设置samba服务器是否提供wins服务。
    
    wins server = wins服务器IP地址
    说明:设置Samba Server是否使用别的wins服务器提供wins服务。
    
    wins proxy = yes/no
    说明:设置Samba Server是否开启wins代理服务。
    
    dns proxy = yes/no
    说明:设置Samba Server是否开启dns代理服务。
    
    load printers = yes/no
    说明:设置是否在启动Samba时就共享打印机。
    
    printcap name = cups
    说明:设置共享打印机的配置文件。
    
    printing = cups
    说明:设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx
    
    共享参数:
    #================== Share Definitions ==================
    [共享名]
    
    comment = 任意字符串
    说明:comment是对该共享的描述,可以是任意字符串。
    
    path = 共享目录路径
    说 明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes] 共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目 录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用 户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以 这样写:path = /home/share/%m 。
    
    browseable = yes/no
    说明:browseable用来指定该共享是否可以浏览。
    
    writable = yes/no
    说明:writable用来指定该共享路径是否可写。
    
    available = yes/no
    说明:available用来指定该共享资源是否可用。
    
    admin users = 该共享的管理者
    说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
    例如:admin users =david,sandy(多个用户中间用逗号隔开)。
    
    valid users = 允许访问该共享的用户
    说明:valid users用来指定允许访问该共享资源的用户。
    例如:valid users = david,@dave,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@组名”表示。)
    
    invalid users = 禁止访问该共享的用户
    说明:invalid users用来指定不允许访问该共享资源的用户。
    例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
    
    write list = 允许写入该共享的用户
    说明:write list用来指定可以在该共享下写入文件的用户。
    例如:write list = david,@dave
    
    public = yes/no
    说明:public用来指定该共享是否允许guest账户访问。
    
    guest ok = yes/no
    说明:意义同“public”。
    
    几个特殊共享:
    [homes]
    comment = Home Directories
    browseable = no
    writable = yes
    valid users = %S
    ; valid users = MYDOMAIN\%S
    
    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
    
    [netlogon]
    comment = Network Logon Service
    path = /var/lib/samba/netlogon
    guest ok = yes
    writable = no
    share modes = no
    
    [Profiles]
    path = /var/lib/samba/profiles
    browseable = no
    guest ok = yes
    
    Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。使用testparm –v命令可以详细的列出smb.conf支持的配置参数。
    

    以上参数说明均是复制粘贴。
    https://blog.csdn.net/weixin_40806910/article/details/81917077

    学习使用 Samba,对自己来说这才是重点
    主要可以借此理解一下配置文件的具体参数意义

    配置环境, 一般测试时关闭防火墙将Selinux设置为permissive即可
    关闭防火墙

    	systemctl stop firewalld
    	systemctl disable firewalld
    
    	vi /etcselinux/config
    

    设置SELINUX=permissive
    重启后生效。立即生效

    setenforce permissive
    

    我Samba安装的版本是4.9。
    测试一:共享一个目录,任何人都可以访问,不需输入密码。要求只读。

    设置smb.conf配置文件

    global模块

    [global]
    	workgroup = SAMBA
    	security = user
    
    	passdb backend = tdbsam
    
    	printing = cups
    	printcap name = cups
    	load printers = yes
    	cups options = raw
    

    修改为

    [global]
            workgroup = MYGROUP
    
            security = user
            map to guest = Bad User 
    
            passdb backend = tdbsam
    
            log file = /var/log/samba/log.%m
    
            printcap name = cups
            load printers = yes
            cups options = raw
    

    只是加了两行 第二行不是必须的,只是声明一下连接的日志文件。

     map to guest = Bad User 
     log file = /var/log/samba/log.%m
    

    低版本中设置不需密码,只需设置

     security = share
    

    不用加 map to guest = Bad User ,至多4.9版本后 security参数就不能设置为share了,被弃用了。

    在文件末尾新增共享参数设置

    [share]
            comment = share all
            path = /tmp/share
            browseable = yes
            writable = no
            public = yes
    

    编辑完成保存。

    开始创建测试目录

    mkdir /tmp/share
    chmod 777 /tmp/share
    touch /tmp/share/sharefile1
    echo "秦时明月汉时关" > /tmp/share/sharefile1
    

    可以使用 testparm 命令测试配置文件是否有误。
    无误后然后启动smb服务

    systemctl restart smb
    

    可以在window机器的浏览器输入file://IP/share 即可看到该目录下文件
    共享成功
    附: public 的意思是设置 guest 是否可以访问。来宾 就是没有经过登录校验的用户。

    测试二:共享一个目录,使用用户名密码登录后才能访问。要求可读写。

    在配置文件中新加入一个共享配置
    [global]中的

    [myshare]
            comment = share users
            path = /tmp/share2
            browseable = yes
            writable = yes
    		public = no
    

    browseable = yes/no
    说明:browseable用来指定该共享是否可以浏览。
    writable = yes/no
    说明:writable用来指定该共享路径是否可写。
    available = yes/no
    说明:available用来指定该共享资源是否可用。

    public = no 表示禁止来宾访问。这样就必须登录后才能访问了。默认似乎就是no
    创建测试目录

    mkdir /tmp/share2
    chmod 777 /tmp/share2
    

    首先要先创建用户
    Linux的用户密码和samba的用户密码并不是一码子事,只是samba的用户必须是Linux的用户,因此需要将heijunma这个账户添加到samba的用户数据库,执行如下命令:
    首先创建 Linux 用户,设置用户密码。(其实不用设置密码,只是用来测试使用一下Samba)

    useradd user1
    useradd user2
    passwd user1
    passwd user2
    

    删除用户指令

    userdel -r user1
    

    添加为Samba账号。可以使用smbpasswd命令添加,smbpasswd -h可查看帮助,不过闲杂常用的是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用户账号。
    

    添加user1, user2为Samba账号

    pdbedit -a user1
    pdbedit -a user2
    

    查看所有账号信息

    pdbedit -L
    

    重启服务

    systemctl restart smb
    

    在文件系统上方输入栏输入file://IP/myshare/ 需要输入用户名密码才可访问。 就是打开计算机 在上方输入栏输入file://IP/myshare/
    直接浏览器访问 可能不会出现用户登录 界面 直接无法访问
    在这里插入图片描述

    登录后 会记住密码 然后浏览器即可访问
    浏览器在登录后可访问

    测试三 使用linux访问samba服务器

    Samba服务在linux下同样可以访问。前提是你的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。具体语法为:

    smbclient //IP/共享名 -U 用户名
    如:

    [root@localhost]# smbclient //10.0.4.67/myshare/ -U user1
    Password:
    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]
    smb: \>
    

    出现如上所示的界面。可以打一个 ”?” 列出所有可以使用的命令。常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用 help + 命令可以打印该命令如何使用,其中get是下载,put是上传。

    另外的方式就是通过mount挂载了,如:

    mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456
    格式就是这样,要指定 -t cifs //IP/共享名 本地挂载点 -o后面跟username 和 password 挂载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。

    其它的 指定用户访问,指定用户禁止访问。用户创建文件权限等配置看上面的配置就可以。
    writable = yes/no 针对的似乎是整体是否可写,设定为no是但是write list中的用户可以 写
    write list = user,user2 user1,user2可写,其他的用户和来宾不可写。
    browseable 和 valid users 基本同理,设定为no时,只有valid users中设定用户可访问。
    另 valid users和 write list 并不是 只限制设定的用户可读写,而是根据writable 和 browseable设定为no时的设定可访问用户,举例如browseable 为 yes, 那么不在valid users中的用户也可访问。
    public = yes/no 表示来宾是否可访问

        create mask = 0644
        directory mask = 0755
    

    这两个参数分别设置 其它机器通过共享访问该目录时创建的文件和目录对应的权限 create mas 表示文件 directory mask表示目录。文件权限设置为644 可以保证新建的文件没有可执行属性。

    源码编译安装Samba CentOS7 (其它Linux系统大同小异)

    除了使用CentOS系统等自带的安装包外(官方称为Distribution-specific Package) 。有些情况可能希望使用源码安装。
    安装步骤也十分简单。。。官方安装参考https://wiki.samba.org/index.php/Build_Samba_from_Source

    • 安装依赖包
    yum -y install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
           libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
           perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
           python2-crypto gnutls-devel libattr-devel keyutils-libs-devel \
           libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
           pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel \
           lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel
    
    - tar -zxvf samba-4.4.3.tar.gz
    - cd cd samba-4.4.3
    
    • 开始构建 ./configure 这里可以设置构建的参数。参考官方文档,一般按默认的就好。
      出现 'configure' finished successfully (1m2.432s) 就表示成功,中间会有许多 not found 不要在意
      configure成功
    • 安装
    make
    sudo make install
    

    这两步可以连起来起来 make && make install
    安装完成
    至此安装完成。安装完成后的路径应该是

    /usr/local/samba
    

    将Samba命令添加到$PATH变量

    export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH
    

    这里是临时添加,要永久添加进环境变量可以网上搜索。然后就可以使用Samba了。
    比如 通过修改.bashrc文件:

    vim ~/.bashrc
    

    在最后一行添上:

    export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH
    

    生效方法:(有以下两种)
    1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
    2、输入“source ~/.bashrc”命令,立即生效
    有效期限:永久有效
    用户局限:仅对当前用户

    /usr/local/samba/sbin/ 目录中放的是守护进程的二进制文件,个人理解相当于rpm包安装时启动 smb 服务。
    samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。

    /usr/local/samba/bin/ 目录中放的大多就是Samba运行命令,常见的有 testparm pdbedit smbpasswd smbclient 这些命令上文已经使用过了。。就不再解释了。

    另 通过源码安装的Samba构建过程中没有额外设置的话。 默认配置文件是/usr/local/samba/etc/smb.conf 需要自己设置。
    在启动进程时可以使用 -s 参数指定配置文件位置 smbd 如 smbd -s /etc/samba/smb.conf

    使用起来同rpm包安装得基本一致,除了将服务换成了守护进程。。另外,也可以个人编辑Samba.service文件当作服务来启动。。这个暂时还不会。就不说了。

    如果要设置开机启动 有一个方法。。。
    编辑 /etc/rc.d/rc.local 文件

    vim /etc/rc.d/rc.local
    

    在末尾添加

    /usr/local/samba/sbin/smbd -D &
    /usr/local/samba/sbin/nmbd -D &
    

    增加 /etc/rc.d/rc.local 的执行权限

    chmod +x /etc/rc.d/rc.local
    
    展开全文
  • samba服务器搭建详细配置

    千次阅读 2019-10-31 16:41:23
    samba 作用:适用于windows与linux间文件共享; 设置共享目录 借助于应用层SMB协议、cifs文件系统 访问类型: 匿名访问 (samba 4.0版本前、淘汰) 基于用户认证 — 共享用户(useradd, smbpasswd) 服务端: 软件:...

    samba服务

    作用:适用于windows与linux间文件共享;
    设置共享目录 借助于应用层SMB协议、cifs文件系统

    访问类型:
    匿名访问 (samba 4.0版本前、淘汰)
    基于用户认证
    — 共享用户(useradd, smbpasswd)
    服务端:

    软件:samba, samba-client
    配置文件: /etc/samba/smb.conf 
    服务:
        smb:提供目录共享
        nmb: 提供通过主机名访问的方式
    端口:
        smb   tcp/139   tcp/445
        nmb   udp/137    udp/138 
    

    共享目录设置

    [共享名称]
    
        comment = 说明信息
        path = 目录名称
        browseable = yes    //设置可浏览
        writeable = yes     //设置为可写
        public = yes         //允许无密码访问
    	valid users	设置允许登陆的用户名
    	force user	设置强制设定新建文件所属用户
    	force group	设置强制设定新建文件所属用户组
    	create mask	设置创建文件设定的权限
    	directory mask	设置创建文件夹设定的权限
    

    1、开启samba的端口

    firewall-cmd  --add-port=139/tcp --permanent
    firewall-cmd  --add-port=445/tcp --permanent
    firewall-cmd  --add-port=137/udp --permanent
    firewall-cmd  --add-port=138/udp --permanent
    firewall-cmd --reload       #重新读取防火墙规则
    firewall-cmd --list-all     #查看已经添加的规则
    

    2、安装软件

     yum install -y samba
    

    3、示例:将/data目录共享,要求客户端通过spuser用户认证访问

    mkdir /data
    
    **#创建一些测试文件**
    touch /data/{1..10}.mp3
     
    **#在文件末尾添加**
                  
    vim /etc/samba/smb.conf         
    [data]
        comment = test01
        path = /data
        browseable = yes
        writeable = yes
    

    #默认共享 共享用户的家目录,不想共享家目录的话
    注释[homes]下面这几段

    4、创建共享用户

    useradd spuser
    

    #添加samba共享用户

    [root@spgpu ~]# smbpasswd -a spuser
    New SMB password:
    Retype new SMB password:
    Added user spuser.
    

    5、在目录本地添加写权限

    setfacl -m u:spsuer:rwx /data/
    

    6、启动服务设置开机自启

    systemctl start smb nmb
    systemctl enable smb nmb
    

    7、测试访问:
    windows直接输入:\\ip
    在这里插入图片描述
    Linux客户端:

      yum install -y samba-client
     连接命令:-U 是指定共享用户登录
     smbclient //10.0.0.64/data -U spuser
    
    get    下载
    put    上传
    lcd    切换本地目录 
    
    展开全文
  • Samba服务器搭建与配置

    万次阅读 多人点赞 2018-10-18 17:49:19
    Samba服务简介 Samba的起源: 对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议。 ​ 但是Linux和Windows之间是不能共享的,所以澳大利亚国立大学的Andrew...
  • samba服务器搭建.doc

    2021-04-13 10:30:00
    samba服务器搭建.doc
  • samba 服务器搭建

    2019-06-22 18:20:18
    为什么要搭建samba 服务器我在 windows 下安装了个虚拟机,然后想两边同步下资料,原来虚拟机是可以共享文件的,可是不知道什么见鬼了,就是不行,没办法了,我只好拿...
  • Samba服务器搭建流程与问题解决

    千次阅读 2019-07-01 09:43:51
    Ubuntu配置samba实现文件夹共享 安装leafpad记事本 apt-get install leafpad 安装SSH远程连接服务器 ...安装samba服务器 sudoapt-getinstallsamba sudo apt-get installcifs-utils 安装完成后查看版本...
  • Samba服务器搭建.pdf

    2020-03-13 10:59:45
    在程序员实际开发中经常要在window和Linux系统实现资源共享,而Samba就是因此而诞生的,本文档基于此基础而编写,通过实际验证,是可行的。
  • 目 录 第1章 绪论. 1 ...第2章 samba介绍. 4 2.1 samba总体概述. 4 2.2 samba功能介绍. 5 第3章 配置文件. 6 3.1 samba配置文件全局文件内容介绍. 6 3.2 samba配置文件每单项介绍. 8 第4章 实践...
  •  Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间...
  • samba 服务器搭建软件包,配套博客链接 https://blog.csdn.net/qq_27788177/article/details/104625848
  • PAGE PAGE 47 Linux服务器配置与管理 实验指导 概 述 一实验教学的内容及目的 本课程的实验指导书对上机实验内容部分进行指导 上机试验以培养学生的独立思考能力与动手能力为主导原则目的在于对课堂讲授的内容加深...
  • centos7下samba服务器搭建

    千次阅读 2017-09-11 09:05:27
    不喜欢linux的界面所以搭建一个samba服务器 建立一个共享目录 首先关闭firewall  systemctl stop firewalld 关闭SElinux //这是一个linux的安全系统 setenforce 0 安装samba samba-client yum -y install samba ...
  • 配置SAMBA服务器;SAMBA的配置文件;Global Setting;Logging Options;Standalone Server Options;Standalone Server Options;Standalone Server Options;Share Definitions;创建访问账户;创建访问账户;实例通过SMB共享...
  • linux samba服务器搭建

    2017-04-25 11:12:00
    linux samba服务器搭建
  • SAMBA服务器搭建

    2019-07-22 16:30:46
    SAMBA服务器搭建 环境: hostname ip OS server 192.168.220.138 centos7 client 192.168.220.139 centos7 一、samba概述 samba最先在Linux和Windows两个平台之间架起了一座桥梁,正是由于Samba的出现...
  • 环境 #服务端:centos7 客户端:centos7,windows10 配置yum源,使用光盘...#安装samba:yum install samba -y #查看软件安装情况: 匿名访问 #配置静态ip: #修改配置文件/etc/samba/smb.conf ...
  • samba服务器搭建

    2021-01-06 13:18:45
    Linux之samba服务器 首先介绍一下samba的由来 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 原本SMB协议是windows和windows(网上邻居)之间分享资源的一种协议。 Linux找到...
  • 简述samba服务器搭建

    2015-05-14 20:17:17
    通过samba实现smb(Service MessageBlock 信息块协议)协议,从而实现跨系统的文件共享。CIFS主要监听在137/UDP,138/UDP,139/TCP,445/TCP,其中137和138端口用于提供NetBIOS,NetBIOS是Windows基于主机实现互相...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,868
精华内容 3,547
关键字:

samba服务器搭建