SAMBA的原理及搭建

什么是SAMBA
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。为不同计算机之间共享打印机,串行口和通讯抽象。

SAMBA的功能
Samba是用来实现SMB的一种软件,它的工作原理是,
让NETBIOS(Windows95网络邻居的通讯协议)和SMB(Server Message Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows 计算机看到。
它的功能有:

1.共享Linux磁盘给Win95/NT
2.共享Win95/NT磁盘给Linux机器
3.共享Linux打印机给win95/NT
4.共享win95/NT打印机给Linux机器。

SAMBA的安装

安装samba
Yum install samba -y
Samba拥有两个主服务(相关服务),对于一般使用的服务他只有一个主服务
smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用139/445端口
nmbd 提供Netbios(解析协议慢慢的被淘汰)支持,使用137/138端口,而对于这种协议使用较少,现在都是dns进行解析 
一般作为文件共享使用samba,则只需要smbd服务

SAMBA的主配置文件内容

Samba的配置文件为/etc/samba/smb.conf
配置文件分为三个部分:
[global] 定义全局性配置(配置samba服务的相关参数)

[homes] 定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)
[printers] 定义打印机共享配置

独立环境下(不和任何域环境有关系)的samba常用的global配置如下:
SAMBA

服务:
	smbd
	nmbd

使用的端口:
Port 137	Used for NetBIOS network browsing
Port 138	Used for NetBIOS name service
Port 139	Used for file and printer sharing and other operations
Port 445	Used by Windows 2000/XP when NetBIOS over TCP/IP is disabled

############################全局控制端##################
[global]
	workgroup = MYGROUP   定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)
	server string = Samba Server Version %v  
	设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用%v = Samba服务的版本号。
	log file = /var/log/samba/log.%m   定义记录文件的位置LogFileName
	max log size = 50
	定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
	security = user
	定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:
	* share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
	* user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
	* server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。
	* domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
	后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。
	load printers = yes

###########################共享的用户家目录##################
[homes]   
    在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。
	comment = Home Directories
	browseable = no
	writable = yes

[printers]
	comment = All Printers
	path = /var/spool/samba
	browseable = no
	guest ok = no
	writable = no
	printable = yes
	write list = +staff   @用来指定可以在该共享下写入文件的用户              
这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。

案例
在这里插入图片描述第一步:安装SAMBA

[root@localhost ~]# yum install samba -y

第二步:根据题意编辑配置文件

[root@localhost ~]# vim /etc/samba/smb.conf 

在这里插入图片描述
第三步:创建共享目录

[root@localhost ~]# mkdir /devops

第四步:添加用户及设置相应用户权限

[root@localhost ~]# useradd -u 1111 haha
[root@localhost ~]# useradd -u 2222 xixi
[root@localhost ~]# setfacl -m u:haha:rwx /devops/
添加samba用户,否则客户端访问没有身份
[root@localhost ~]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.
[root@localhost ~]# smbpasswd -a haha
New SMB password:
Retype new SMB password:
Added user haha.

第五步:设置防火墙和selinux

[root@localhost ~]# firewall-cmd --permanent --add-service=samba
success
[root@localhost ~]# firewall-cmd  --reload 
success
[root@localhost ~]# setenforce 1
[root@localhost ~]# getenforce 
Enforcing
[root@localhost ~]# chcon -t samba_share_t /devops/

第六步:重启服务并开机自启

[root@localhost ~]# systemctl start smb nmb.service 
[root@localhost ~]# systemctl enable smb nmb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service.

第七步:安装客户端

[root@localhost ~]#yum install cifs-utils -y

第八步:创建挂载点目录

[root@localhost ~]#mkdir /123/dev

第九步:永久挂载

[root@localhost ~]#vim /etc/fstab
//192.168.237.133/devops /123/dev cifs defaults,multiuser,useradd=xixi,sec=ntlmssp 0 0

读取以下,没报错挂载成功

[root@localhost ~]#mount -a

第十步:创建用户

[root@localhost ~]#usradd -u 1111 haha
[root@localhost ~]#useradd -u 2222 xixi

第十一步:切换到用户测试

[root@localhost ~]#su - haha
[bash~]$cd /123/dev
[bash~]$cifscreds add 192.168.237.133 服务端默认给用户一个权限,使其具有访问权限
Password:
[bash~]$touch testfile
[bash~]$ls
testfile
[bash~]$exit


[root@localhost ~]#su - xixi
[bash~]$cd /123/dev
[bash~]$cifscreds add 192.168.237.133 
Password:
[bash~]$touch testfile
touch:writing directory .: Permission deined
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值