【Linux】---Samba服务

Samba服务

1. SMB协议:

SMB(Server Message Block)协议是微软和英特尔联合制定的协议,主要作为微软网络的通信协议(可以将它看作局域网中的文件和打印共享协议)。SMB协议工作于会话层表示层和一小部分的应用层,它使用了NetBIOS的应用程序接口(API)。另外,它是一个开放性的协议,允许协议扩展(这使得它变得庞大而复杂)。
为了让 Windows 和 Linux 计算机之间能相互访问,最好的办法是在 Limnux 中安装支持SMB 协议的软件,将SMB 协议搬到Linux 系统上使用,而samba 就是这样的一款软件。samba 采用客户机/服务器模式,我们可以在 Linux中架设 samba 服务器,实现 Windows客户机对 Linux 服务器的访问。例如,访问smaba服务器上的文件和打印机等。
Ps:SMB 最初设计是在 NetBIOS 协议上运行的,而 NetBIOS 本身运行在 TCP/IP 协议上( Windows 2000 引入了 SMB 直接在 TCP/IP 上运行的功能)。因此,通过“NetBIOS overTCP/IP”使用 samba服务,不但可以和局域网,而且可以和互联网上众多的计算机共享资源,因为互联网上的主机使用的通信协议都是 TCP/IP。

2. Samba相关进程:

samba 服务由两个进程组成,分别是nmbd 和smbd。
nmbd:其功能是进行 NetBIOS 名称解析(将 NetBIOS 名解析为PP地址),并提供浏览服务,显示网络上的共享资源列表。
smbd:其功能是用来管理 samba 服务器上的共享目录、打印机等,还负责用户权限设置和身份验证。

服务程序:smb.service
配置文件:/etc/samba/smb.conf

3. Samba功能:

文件和打印机共享:文件和打印机共享是 samba 的主要功能,通过 smbd 进程实现。
身份验证和权限设置:samba 通过 smbd 进程实现身份验证和权限设置,通过加密方式保护共享的文件和打印机。
名称解析:samba 通过 nmbd 进程搭建 NBNS(NetBIOS Name Service),提供名称解析,将计算机的 NetBIOS 名解析为 地址。浏览服务:在局域网中,samba服务器作为本地主浏览服务器,保存着可用资源列表,可为客户端访问Windows网上邻居提供浏览列表(包括共享目录、打印机等资源)。

4. 配置文件参数:

[global]#全局配置
workgroup = SAMBA #工作组名称
security = user #安全验证的方式。需验证来访问主机提供的口令才可以访问
security = share #来访主机无需验证口令;比较方便,但不安全
security = server #使用独立的远程主机验证来访主机提供的口令
security =domain #使用域控制器进行身份验证
passdb backend =tdbsam #定义后台的类型,共有三种。第一中:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
passdb backend =smbpasswd #使用smbpasswd命令为系统用户Samba服务程序的密码
passdb backend = ldapsam #ldapsam:基于LDAP服务进行账户验证
load printers = yes #设置在Samba服务启动时是否共享打印机设备
cups options = raw #打印机的选项

[homes]#共享参数
comment = Home Directories #描述信息
browseable = No #指定共享目录是否在“网上邻居”中可见
read only = No #指定共享目录是否仅读
browseable = No #在配置文件中的共享文件下敲这个命令,只有的通过samba服务共享当前文件是否允许可见。其他的非当前共享文件不影响本身效果

printers #打印机共享参数

Share Definitions 共享服务的定义

1.设置共享名         
格式:
	【共享名】
2.共享资源描述     
格式:
	comment= 备注信息
3.共享路径             
格式:
	path=绝对地址路径
4.设置匿名访问       
格式:
	public =yes //允许匿名当访问
	public =no  //不允许匿名当访问
5.设置访问用户
格式:
	valid users = 用户名
	valid users = @组名
6.设置目录只读
格式:
	read only = yes  //只读
	read only = no    //读写
7.设置过滤主机
格式:
	hosts allow = 192.168.10.   server.abc.com   //允许来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源 
	hosts deny = 192.168.10.   server.abc.com    //拒绝来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源
8.设置目录可写
格式:
	writable = yes  //读写
	writable = no    //只读
9.设置目录只允许部分用户或组读写
格式:
	writable  list =  用户名 //允许该用户读写
	writable  list =  @组    //允许该组读写
10.[home]为特殊共享目录,表示用户主目录。[printers]表示共享打印机

5. 配置实例:

1.创建samba共享,本地目录为/data/share1,要求:共享名为share1。仅允许zsuser用户能上传文件。
2.创建samba共享,本地目录为/data/public,要求:共享名为public。允许匿名访问。所有用户都能上传文件。

安装samba服务:
[root@appsrv ~]# yum install samba samba-client-libs.i686 -y

创建共享文件夹,设置权限
[root@appsrv ~]# mkdir /data/share1 -p
[root@appsrv ~]# mkdir /data/public
[root@appsrv ~]# chmod -R 777 /data/

创建samba账户
[root@appsrv ~]# useradd zsuser
[root@appsrv ~]# smbpasswd -a zsuser
New SMB password:
Retype new SMB password:
Added user zsuser.

编辑samba服务配置文件:
[root@appsrv ~]# vim /etc/samba/smb.conf
[share1]
		path = /data/share1
    	write list = zsuser
[public]
    	path = /data/public
    	writeable = yes
    	public = yes
[root@appsrv ~]# systemctl restart smb.service
[root@appsrv ~]# setenforce 0

客户端测试:
[root@appsrv ~]# touch test.txt
[root@appsrv ~]# smbclient //127.0.0.1/share1 -U zsuser
Enter SAMBA\zsuser's password: 
Try "help" to get a list of possible commands.
smb: \> put test.txt
putting file test.txt as \test.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \> ls
  .                                   D        0  Tue Oct 24 03:57:55 2023
  ..                                  D        0  Tue Oct 24 03:54:43 2023
  test.txt                            A        0  Tue Oct 24 03:57:55 2023

		17811456 blocks of size 1024. 13328568 blocks available
smb: \> 

[root@appsrv ~]# smbclient //127.0.0.1/public
Enter SAMBA\root's password: 
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Tue Oct 24 03:54:43 2023
  ..                                  D        0  Tue Oct 24 03:54:43 2023

		17811456 blocks of size 1024. 13328452 blocks available
: \> put test.txt 
putting file test.txt as \test.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \> ls
  .                                   D        0  Tue Oct 24 03:59:18 2023
  ..                                  D        0  Tue Oct 24 03:54:43 2023
  test.txt                            A        0  Tue Oct 24 03:59:18 2023

		17811456 blocks of size 1024. 13328452 blocks available
smb: \> 

你可能感兴趣的:(linux,运维,服务器)