文章目录
一、samba的相关概念
1、samba的定义
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。Windows和Sun公司开发,所以可以跨平台!
- 目标:让Windows与Unix-LIke 这两个不同的操作系统平台相互共享数据的文件系统
2、SAMBA的软件架构
- samba:服务器端的应用程序,这个套件主要提供了SAM服务器所需的各项服务程序 (smbd及nmbd )、SAMBA的文件档 ( document )、以及其它与SAMBA 相关的logrotate 设定文件及开机默认选项档案等 。
- samba-common:这个套件则主要提供了 SAMBA 的主要配置文件(smb.conf) 、 smb.conf 语法检验的测试程序( testparm )等等,samba的支持文件;
- samba-client:客户端的应用程序,这个套件则提供了当Linux做为SAMBAClient端时,所需要的工具指令,例如挂载SAMBA文件格式的mount.cifs、取得类似网上邻居相关树形图的smbtree等。如果Linux系统共享资源,没有Windows作为测试,可以用LInux自带的samb-client作为测试端!
二、搭建samba服务器
服务端: ip=172.25.70.22
(1)yum search samba 寻找可以提供此服务的软件
(2)yum install samba-client samba samba-common 安装3个安装包
(3)rpm -qa samba 查看samba服务的版本
(4)rpm -ql samba-common 查看samba服务的主配置文件
- /etc/samba/smbusers :samba服务设置samba虚拟用户的配置文件
(5)getenforce 查看一下selinux的状态,如不是enforcing,通过vim /etc/sysconfig/selinux改为enforcing
(6)vim /etc/samba/smb.conf 查看samba配置文件
- 看到如果selinux开启,必须更改samba共享目录的安全上下文 samba_share_t
- 如果共享的目录不只是SAMBA,还包括FTP或者其它服务,使用public_content_t大家都能读取的类型
(7)打开nmb服务,smb服务,且开机自启动
systemctl start nmb
systemctl start smb
systemctl enable smb
- NMB(NetBIOS Message Block):可以通过主机名代替IP地址来访问局域网里的主机, 把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来,主机名与IP的映射。
(8)添加到防火墙中
firewall-cmd --permanent --add-service=samba
firewall-cmd --permanent --add-service=samba-client
firewall-cmd --reload
(9)netstat -antlupe | grep smb 查看smb服务的端口
通常使用445/tcp进行所有的连接;也可以使用TCP端口139,UDP端口137、138向后兼容!
(10)pdbedit -L 查看samba服务器的samba用户
(11)useradd westos 建立westos用户、ranran用户
(12)smbpasswd -a westos 将westos用户和ranran用户加入samba用户里面,并且设置密码123456
- smbpasswd -a 添加用户(被添加用户必须是系统用户)
- smbpasswd -x 删除用户