美文网首页
samba服务应用

samba服务应用

作者: uangianlap | 来源:发表于2016-10-17 22:47 被阅读91次
    samba

    Samba,是种用来让UNIX系列的操作系统微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。


    samba的两个服务

    安装samba yum -y install samba 以下安装包会作为依赖被安装

    samba-common.noarch 0:4.2.3-10.el7
    samba-common-libs.x86_64 0:4.2.3-10.el7 samba-common-tools.x86_64 0:4.2.3-10.el7 samba-libs.x86_64 0:4.2.3-10.el7```

    安装samba后执行命令rpm -ql samba会发现有两个服务程序如下图

    samba的两个服务应用
    服务名 作用
    nmbd 主要利用UDP 137138端口负责名称解析的服务
    smbd 主要功能就是用来管理samba主机分享的目录 文件和打印机等 主要利用TCP协定来传输资料,使用端口为139445

    让我们先用一个示例快速了解samba具体是如何使用的吧!(准备两台CentOS7.2的主机,一台做server(172.18.20.96)另一台做client(172.18.20.69)),步骤如下:
    Server端操作
    1. 关闭防火墙与SELinux
    setenforce 0;
    service  iptables   stop (CentOS6 CentOS7)
    chkconfig iptables off (CentOS6)
    systemctl stop firewalld
    systemctl disable firewalld # 没有关闭在客户端连接的时候可能会提示失
    败信息如"没有到主机的路由"之类的```
    
    1. 在服务器安装Samba软件
      yum -y install samba
    1. 在server创建samb共享目录
      mkdir /common
      chmod 777 /common
      echo "This is a test file in common dir named smb.txt" > /common/smb.txt
    1. 配置samba的配置文件(/etc/samba/smb.conf)
      vim /etc/samba/smb.conf 在最后"Share Definitions"处添加samba
      服务器的共享目录,设置如下几行
      [common]
      comment = Common Share
      path = /common #第3步创建的共享路径
      browseable = yes #所有人可见
      guest ok = no #拒绝匿名访问
      writeable = yes #支持写入数据

    testparm命令可测试配置文件语法

    1. 在server端创建访问帐号
      useradd -s /sbin/nologin uangianlap
      smbpasswd -a uangianlap # 这个工具由samba-common-tools提供.这里也可以使用pdbedit这个工具来创建samba用户且更方便好用,具体用法后面介绍
      New SMB password: # 提示输入密码 假设密码为123456吧
      Retype new SMB password:
      Added user smbuser.
    1. 在server端启动samba服务(完毕做个检查是个好习惯)
      systemctl start smb.service; [systemctl enable smb.service]
      systemctl status smb.service
      ss -lntu # 查看samba服务监听的139 445 [137 138]等端口是否开启
    ###### Client端操作
    
    1. client端访问samba服务
      yum -y install samba-client # 安装samba客户端工具
      smbclient -L //172.18.20.96 # 查看server主机共享信息,仅查看不需要密码,直接回车即可
      smbclient -U uangianlap //172.18.20.96/common
      Enter smbuser's password: # 输入samba帐户密码,就是123456啦
      错误:smbclient: relocation error: /lib64/libsamba-credentials.so.0: symbol GSS_KRB5_CRED_NO_CI_FLAGS_X, version gssapi_krb5_2_MIT not defined in file libgssapi_krb5.so.2 with link time reference. 解决办法:安装krb5
      yum install krb5-devel krb5-libs pam_krb5 krb5-workstation
      上面的访问形式为命令行交互式,我们还可以用挂载的方式实现如本地文件系统一样的使用体验,方法如下:
      mkdir /com
      mount -t cifs //172.18.20.96/common /com -o username=uangianlap,password=123456 # 临时挂载,注意:挂载操作中的用户,与-o选项中指定的用户直接产生映射关系(客户端以root挂载,那么其对应server端就是uangianlap);访问挂载,是以-o选项指定的用户身份运行,与本地用户以ID产生映射;
      echo "//172.18.20.96/common /com cifs defaults,username=uangianlap,password=123456 0 0">> /etc/fstab #开机即挂载
    
    **smbpasswd命令的用法:**
    > ***smbpasswd [options] USERNAME***
    > *options:*
    >> -a 添加帐户并设置密码
    >> -x 删除SMB帐户
    >> -d 禁用SMB帐户
    >> -e 启用SMB帐户
    
    **更好用的pdbedit使用**
    > ***pdbedit [options] USERNAME***
    > -L: 列出samba服务中的所有用户
    > -a: 添加用户samba用户
          -u USERNAME(具体添加的哪个用户)
    > -x: 删除
          -u USERNAME(同上)
    > -t: 从标准输入接收密码
    
    ##### Samba配置文件指令详解
    **[global]**
    >**workgroup** = *MYGROUP*   # 定义工作组
    **server string** = Samba Server Version %v   # 服务器提示字串,默认显示samba版本,建议修改默认值以防止针对版本的网络攻击
    **interfaces** = lo eth0 192.168.12.2/24 192.168.13.2/24 # 监听指定网络接口
    **host allow** = 127.  192.168.12.  192.168.13.5  EXCEPT 192.168.13.13 # 指定仅允许哪些主机有权访问Samba服务器资源
    **log file** = /var/log/samba/log.%m   # 定义日志文件 %m会被替换为客户端的主机名
    **max log size** = 50    # 定义日志单个文件最大容量为50Kb,可以调大点 如50MB等
    ***security*** = user   # 安全模式为user,表示需要通过用户名与密码验证访问者的身份          
    **passdb backend** = tdbsam   # 账户与密码的存储方式, smbpasswd代表使用老的明文格式存储帐户及密码 tdbsam代表基于TDB的密文格式存储
    ***deadtime*** = 10   # 客户端在10分钟内没有打开任何Samba资源,服务器将自动关闭会话,在大量的并发访问环境中,这样的设置 可以提高 服务器性能.
    ***display charset*** = UTF8   # 设置显示使用的字符集为UTF8
    ***设置最大连接数*** = 0    # 0代表无限制,超过此限制的连接请求服务器将拒绝连接
    **guest account** = nobody    # 设置匿名帐号为nobody
    **load printers** = yes   # 是否共享打印机
    **cups options** =  raw    # 打印属性
    
    **[homes]**
    >**comment** = Home Directories    # 共享的描述信息
    **browseable** = no    # 共享的目录是 否可以被浏览
    **wriable** = yes    # 共享的目录是否可以进行写操作
    
    **[printers]**    
    >**path = /var/spool/samba**    # 打印机共享池
    **browseable** = no
    **guest ok** = no
    **printable** = yes
    **writeable**  = no
    
    **[common]**                   
    >**comment** = Common share
    **path** = /common
    **valid users** = tom jerry    # 白名单
    **invalid users** = xx xx xx    # 黑名单(与白名单冲突的话,黑名单优先生效)
    **writable** = yes
    **browseable** = yes   # 共享目录是否对所有的人可见
    **write list** = uangianlap   # 拥有写权限帐户或组列表 @组名 or +组名
    **admin users** = uangianlap   # 该共享的管理员,具有完全权限

    相关文章

      网友评论

          本文标题:samba服务应用

          本文链接:https://www.haomeiwen.com/subject/cuezyttx.html