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 文件的格式,用 [ ] 分成不同的部分
- 全局设置:
- 特定共享设置:
- [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 –x
<user>
- pdbedit –x –u
<user>
- 查看 samba 用户列表:/var/lib/samba/private/passdb.tdb
- 查看 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
[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了