zoukankan      html  css  js  c++  java
  • SAMBA服务搭建

    一、简介
    1、认识
    Samba 是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。Samba采用C/S模式, 其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。
    2、作用
    用来沟通Windows与Unix这两种不同的作业平台;共享档案与打印机服务;提供身份认证;提供Windows网络上的主机名称解析(NetBIOS name)
    3、两个进程
    smbd:控制发布共享目录与权限;建立在NetBIOS 协议之上的应用协议,是基于TCP139/445 两个端口的服务
    nmbd:主要用于名称解析;基于 UDP137/138 两个端口的服务
    4、五种安全级别
    share: 不需要samba账户就可登陆samba服务器
    user: 需要添加samba账户才可以登陆samba服务器
    server: 由另外一台samba服务器来对用户进行身份验证
    domain:把samba服务器加入到NT域,由NT的域控制器来进行身份验证
    ADS: Active Directory Service,活动目录服务,它是samba3.0中新增的身份验证方式。采用ADS验证方式,samba服务器集成到活动目录中
    二、部署samba服务
    1、环境准备
    # service iptables stop
    # setenforce 0
    # vim /etc/selinux/config
    SELINUX=disabled
    2、安装服务
    # yum install samba samba-common -y
    # useradd -s /sbin/nologin george --创建samba服务登录用户
    # smbpasswd -a george --将用户 george 设置为smb用户,并增加密码;修改密码时不用加 -a 参数,george必须是系统已经拥有的用户
    # smbpasswd -x u1 --删除用户
    # smbpasswd -d u1 --禁用用户
    # smbpasswd -e u1 --启用用户
    # pdbedit -L --列出所有用户
    # pdbedit -Lv --列出所有用户的详细信息
    # pdbedit -Lv george --列出用户 george 的详细信息
    3、配置服务
    # vim /etc/samba/smb.conf
    [global] --这段是全局配置,是必段写的
      workgroup = MYGROUP --工作组,取个名
      server string = Samba Server Version %v --Samba服务器说明,可自定义
      log file = /var/log/samba/log.%m
      max log size = 50
      security = user --运行的安全级别,还有 share 验证方式
      passdb backend = tdbsam --帐号密码以数据文件的形式存放
      load printers = yes
      cups options = raw
    [homes] --用户家目录通用的共享,每个用户都可以完全访问自己的家目录
      comment = Home Directories --共享资源说明
      browseable = no --是否可以被浏览
      writable = yes --可写
      [printers] --跟打印机相关的选项
      comment = All Printers
      path = /var/spool/samba
      browseable = no
      guest ok = no --匿名用户是否可以登录
      writable = no
      printable = yes
    [linuxdir]  --自定义共享的目录;
    path = --设置共享目录;dir
    writeable = yes --是否可写,这里我设置为可写;yes/no
    browseable = --是否可以浏览;yes/no
    guest ok = --匿名用户以是否可登录;yes/no
    # service smb restart --重启服务
    4、客户端验证
    4.1、使用 samba 客户端访问
    # smbclient -L //192.168.133.3 --匿名用户查看 samba 服务器的共享
    # smbclient -L //192.168.133.3 -U george --服务器上的 samba 用户查看共享
    # smbclient //192.168.133.3/sambadir --匿名用户登录
    # smbclient -U george //192.168.133.3/george -- samba 用户登录
      smb: >     --这个标志就是代表登录 samba 服务器成功
      smb: > help   --查看可使用的命令
      smb: /> lcd /client_dir   --更改客户端当前目录
    4.2、使用 命令挂载 访问
    # yum install cifs-utils -y
    # mount [-t cifs] -o username=george,password=123456 //192.168.133.3/george /mnt     --用户 george 登录
    # mount [-t cifs] -o guest //192.168.133.3/george /mnt       --匿名用户登录,但其实这个不能连接到george,因为 //192.168.133.3/george 后的这个george 不是配置文件里的标签名。
    4.3、自动挂载
    4.3.1、autofs自动挂载
    # vim /etc/auto.master
    /smbmount /etc/auto.smbmount
    # vim /etc/auto.smbmount
    upload -fstype=cifs,username=george,password=123456 //192.168.133.3/upload       --将标签为 upload 的类容挂载到 /smbmount/upload 上
    # vim /etc/sysconfig/autofs
    TIMEOUT=10        --如果过了设定的时间(这里是10秒),就自动卸载
    BROWSE_MODE="yes"   --就算没有挂载,也显示挂载点;必须加上这一条。
    # service autofs restart
    4.3.2、fstab开机自动挂载
    # vim /etc/fstab
    //192.168.133.3/upload /smbmount/upload nfs defaults,credentials=/root/smb.passwd 0 0
    # vim /root/smb.passwd
    username=george
    password=123456
    二、配置实例
    2.1、常规配置:
    # vim /etc/samba/smb.conf
    [guodaye] --共享名字
    comment = For all Anonymous users
    path = /samba/share     --把哪个目录共享出去
    browseable = yes      --共享任何人可见
    writable = yes       --指定该共享路径是否可写,默认不可写
    [upload]
    comment = Upload
    path = /samba/upload
    guest ok = no
    browseable = yes
    writeable = yes
    valid users = u1,u2,+g1     --允许访问的用户和组
    write list = u1         --允许写的用户
    read list = u2,+g1       --只读的用户
    create mode = 0344     --控制新建的文件的权限
    force create mode = 0344   --控制新建的文件的权限
    directory mode = 077     --控制新建的目录的权限
    force directory mode = 0777 --控制新建的目录的权限
    hosts deny = all       --禁止访问的客户端
    hosts allow = 10.1.1.0/24 except 10.1.1.15/32     --允许访问的客户端
    #mkdir -p /samba/share
    #chmod 1777 -R /samba/share --禁止匿名用户删除不属于自己的文件
    注意:
    create mode:与参与计算的权限进行 AND (位与)操作,也就是说,只有列在这个参数中的位才会保留;force create mode:与参与计算的权限进行 OR (位或)操作,也就是说,只要列在这个参数中的位都会保留;先应用(create mode),再应用(force create mode),这样的话,如果需要准确指定新建的文件的权限,则可以把这两个参数设置成相同的值。新建的目录的权限与此类似,也受两组参数的影响,分别是directory mode, force directory mode, 其特点与新建文件相同。
    write list & read list:这两个参数用来指定用户可以写,用户只能读。值得注意的是,如果一个用户同时出现在这两个列表中,那么该用户也具有写的权限(和man文档中描述的不一致)
    writeable (!read only):这个参数用来控制共享的目录是否可写。值得注意的是,就算writeable=no,但是write list参数包含了某个用户,那么该用户仍然可以写
    hosts deny& hosts allow 参数,如果两者之间有冲突,则hosts allow 中的规则生效
  • 相关阅读:
    .NET牛人应该知道些什么
    秋梦
    感谢你走进我的生命里
    漂流有感
    QQ在跳舞
    青春无痕
    名人只是传说,你我才是传奇
    祝福紫秋
    可以用在任何人身上:百战百胜人生10大成功秘诀
    c#发送邮件
  • 原文地址:https://www.cnblogs.com/george-guo/p/7693217.html
Copyright © 2011-2022 走看看