Linux服务篇之SAMBA文件共享第一篇

96
O感悟人生O
2017.08.14 19:57* 字数 1269

Linux服务篇之SAMBA文件共享第一篇

SAMBA服务简介

  • SMB:Server Message Block ,大意为服务器消息模块
  • 由IBM公司发布,在最早出现的网络文件共享协议是DOS网络文件共享协议
  • Cifs:大意为common internet file system ,是微软基于SMB发布的变种SMB
  • SAMBA实现是,1991年Andrew Tridgell,是由伯克利大学的大学生,研发出来,他用用意是为了Windows和UNix相通数据
  • SAMBA的功能
    • 共享文件和打印,实现在线编辑
    • 实现登录SAMBA用户的身份验证
    • 可以进行NetBIOS名称解析
    • 外围设备共享
  • 计算机网络管理模式:
    • 工作组 WORKGROUP :计算机对等关系,帐号信息各自管理
    • 域 DOMAIN:C/S 结构,帐号信息集中管理, DC,AD

SAMBA 介绍

  • 相关包:
  • Samba 提供 smb 服务
    • Samba-client 客户端软件
    • samba-common 通用软件
    • cifs-utils smb 客户端工具
  • 相关服务进程:
    • smbd 提供 smb ( cifs )服务 TCP:139,445
    • nmbd NetBIOS 名称解析 UDP:137,138
  • 主配置文件: /etc/samba/smb.conf
  • 语法检查: testparm [-v] [/etc/samba/smb.conf]
  • 客户端工具: smbclient,mount.cifs

SAMBA 服务器配置

  • smb.conf 继承了 .ini 文件的格式,用 [ ] 分成不同的部分
  • 全局设置:
    • [global] 服务器通用或全局设置的部分
  • 特定共享设置:
    • [homes] 用户的家目录共享
    • [printers] 定义打印机资源和服务
    • [sharename] 自定义的共享目录配置
  • 其中: # 和 ; 开头的语句为注释,大小写不敏感
  • 宏定义:
    • %m 客户端主机的 NetBIOS 名 %M 客户端主机的 FQDN
    • %H 当前用户家目录路径 %U 当前用户用户名
    • %g 当前用户所属组 %h samba 服务器的主机名
    • %L samba 服务器的 NetBIOS 名 %I 客户端主机的 IP
    • %T 当前日期和时间 %S 可登录的用户名
  • workgroup 指定工作组名称
  • server string 主机注释信息
  • netbios name 指定 NetBIOS 名
  • interfaces 指定服务侦听接口和 IP
  • hosts allow 可用“ ,” ,空格,或 tab 分隔,默认允许所有主机访问,也
    • 可在每个共享独立配置,如在 [global] 设置,将应用并覆盖所有共享设置
    • IPv4 network/prefix: 172.25.0.0/24 IPv4 前缀 : 172.25.0.
    • IPv4 network/netmask: 172.25.0.0/255.255.255.0
    • 主机名 : desktop.example.com
    • 以 example.com 后缀的主机名 : .example.com
  • 示例:
    • hosts allow = 172.25.
    • hosts allow = 172.25. .example.com
    • hosts deny 拒绝指定主机访问

SAMBA 服务器全局配置

  • Log file=/var/log/samba/log.%m 不同客户机采用不同日志
  • max log size=50 日志文件达到 50K ,将轮循 rotate, 单位 KB
  • Security 三种认证方式:
  • share :匿名 (CentOS7 不再支持 )
    • user : samba 用户(采有 linux 用户, samba 的独立口令)
    • domain: 使用 DC ( DOMAIN CONTROLLER) 认证
  • passdb backend = tdbsam 密码数据库格式
  • 实现 samba 用户:
    • 包: samba-common-tools
    • 工具: smbpasswd pdbedit
    • samba 用户须是 Linux 用户,建议使用 /sbin/nologin

管理 SAMBA 用户

  • 添加 samba 用户
    • smbpasswd -a <user>
    • pdbedit -a -u <user>
  • 修改用户密码
    • smbpasswd <user>
  • 删除用户和密码:
    • smbpasswd –x <user>
    • pdbedit –x –u <user>
  • 查看 samba 用户列表:/var/lib/samba/private/passdb.tdb
    • pdbedit –L –v
  • 查看 samba 服务器状态: smbstatus

配置目录共享

  • 每个共享目录应该有独立的 [ ] 部分
    • [ 共享名称 ] 远程网络看到的共享名称
    • comment 注释信息
    • path 所共享的目录路径
    • public 能否被 guest 访问的共享,和 guest ok 类似
    • browsable 是否允许所有用户浏览此共享 , 默认为 yes,no 为隐藏
    • writable=yes 可以被所有用户读写,默认为 no
    • read only=no 和 writable=yes 等价,如与以上设置冲突,放在后面的设置生效
    • write list 三种形式:用户, @ 组名, + 组名 , 用,分隔如 writable=no ,列表中用户或组可读写,不在列表中用户只读
    • valid users 特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔

SAMBA搭建

  • 首先测试yum源是否通,执行命令yumrepolist
[root@localhost ~]# yum repolist
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
bash                                                                                                                                  | 4.0 kB     00:00     
repo id                                                                     repo name                                                                  status
bash                                                                        linux                                                                       6,706
epel                                                                        epel                                                                       12,355
repolist: 19,061
  • 在执行yum install samba -y
[root@localhost ~]# yum install samba -y
  • 接下来创建SAMBA系统用户,执行命令useradd -s /sbin/nologin smb1,smb1随便指定,但是添加的时候一定要同名
[root@localhost ~]# useradd -s /sbin/nologin  smb1
  • 在来添加成SAMBA用户,执行命令smbpasswd -a smb1来添加,如果不加-a那就是修改密码了,而且添加的同时必须和你的系统账号同名
[root@localhost ~]# smbpasswd -a smb1
  • 添加完成以后执行pdbedit -L来查询是否添加成功
[root@localhost ~]# pdbedit -L
smb1:501:
  • 添加完成以后,就可以启动服务了执行命令service smb start
    • service smb start:是启动
    • service smb restart:重启服务
  • 启动完毕以后用iptables -F,清除防火墙
[root@localhost ~]# iptables -F
  • OK以后你就可以去你的Windows链接你SAMBA了
日记本
Web note ad 1