linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)

CSDN 成就一亿技术人!

作者主页:点击!****

Linux专栏:点击!

CSDN 成就一亿技术人!

前言------------

Samba 是一个开源软件套件,可为 SMB/CIFS 客户端(包括 Windows)提供文件和打印服务。通过设置 Samba 文件服务器,您可以在网络上共享文件和资源,从而实现不同操作系统之间的无缝协作。

在CentOS上搭建Samba文件服务器的过程与通用的Linux设置基本相同。以下是在CentOS上搭建Samba文件服务器的基本步骤:

1.安装samba

通过yum来安装samba

首先需要ping一下百度 如果ping不通的话 你可以搭建本地YUM仓库 然后在下载

本地YUM源配置具体过程:本地YUM配置https://blog.csdn.net/jxjdhdnd/article/details/134947879?spm=1001.2014.3001.5501

bash 复制代码
[root@localhost ~] yum install -y samba

2.创建测试目录和文件

我在/下创建sunshao文件夹里边有1.txt文件 并且赋予权限

bash 复制代码
[root@localhost ~] mkdir /sunshao
[root@localhost ~] touch /sunshao/1.txt
[root@localhost ~] chmod 777 /sunshao/

3.编辑samba的配置文件

/etc/samba/smb.conf是它的配置文件

bash 复制代码
[root@localhost ~] vim /etc/samba/smb.conf

末尾加入一下内容:
[share]
   path = /sunshao    
   public = yes
   writable = yes

systemctl start smb    如果你未启动就启动sam

systecmtl reload smb  如果你已经开启就重新加载一起 或者重启
  • [share] :这是共享名。它将用于访问共享文件夹。

  • path = /sunshao :指定服务器上共享文件夹的路径。在本例中,共享文件夹位于根目录,名称为"sunshao"。

  • public = yes :此选项允许访问共享文件夹而无需用户名和密码。它将共享公开,这适用于您想要开放访问共享资源的情况。

  • writable = yes :此选项表示共享文件夹可写,这意味着用户可以在共享目录中创建、修改和删除文件。

4.创建访问用户

以下我创建两个用户 ssl sll2

bash 复制代码
[root@localhost ~] useradd ssl

[root@localhost ~] useradd sll2

用于将用户名"ssl"的新用户添加到 Samba SAM 数据库。运行此命令时,系统可能会提示您为新用户"ssl"设置密码。提供密码后,用户帐户将被添加到 Samba 系统中。

bash 复制代码
[root@localhost ~] pdbedit -a -u ssl
new password:
retype new password:
Unix username:        ssl
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-1202113597-2330341868-64012592-1000
Primary Group SID:    S-1-5-21-1202113597-2330341868-64012592-513
Full Name:            
Home Directory:       \\localhost\ssl
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\ssl\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    五, 08 3月 2024 09:48:20 CST
Password can change:  五, 08 3月 2024 09:48:20 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

[root@localhost ~] pdbedit -a -u sll2
new password:
retype new password:
Unix username:        sll2
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-1202113597-2330341868-64012592-1001
Primary Group SID:    S-1-5-21-1202113597-2330341868-64012592-513
Full Name:            
Home Directory:       \\localhost\sll2
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\sll2\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    五, 08 3月 2024 09:48:25 CST
Password can change:  五, 08 3月 2024 09:48:25 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

pdbedit -L 命令用于列出 Samba/Windows SAM(安全帐户管理器)数据库中的所有用户。当您运行此命令时,它将显示用户名列表以及有关每个用户的一些附加信息。输出可能包括用户全名、用户 ID (UID) 和组 ID (GID) 等详细信息。

查看是否加入成功

bash 复制代码
[root@localhost ~] pdbedit -L

5访问服务器

ping服务器

这边我用另外一台centos来访问服务器

首先ping一下服务器如果不通 就需要设置一下网络

关闭防火墙和selinux

bash 复制代码
systemctl stop firewalld
setenforce 0
访问samba

如果无法使用smbclient客户端 那么使用yum自行下载

bash 复制代码
[root@master1 ~] smbclient -U ssl //192.168.180.188/share

您正在使用 smbclient 命令连接到 IP 地址为 192.168.180.188 的主机上的 Samba 共享。 //192.168.180.188/share 参数指定 Samba 服务器的地址和您要连接的共享文件夹。

您还指定了 -U ssl 选项,这表明您希望使用用户帐户"ssl"进行连接。系统可能会提示您输入与"ssl"用户关联的密码。

保您的系统上存在目录 /sunshao ,并且已设置必要的权限以允许 Samba 读取和写入该目录

下载和上传

get

使用get命令来下载 Samba 共享的资源

put

使用put来上传资源

首先eixt退出 创建一个csdn.txt的文件夹

在重新登录

上传文件

6.自定义用户权限

如果此刻我想让sll2一个人用户上传下载的权限 只让ssl拥有读取下载功能呢

那么如下所示:

bash 复制代码
[share]
path = /sunshao
public = no
writable = no
valid users = ssl, sll2
write list = sll2

配置完成之后记得重启或重新加载
  • [share] :Samba 共享的节标题。

  • path = /sunshao :指定服务器上共享文件夹的文件系统路径。

  • public = no :将其设置为"no"表示共享不公开,需要身份验证才能访问它。

  • writable = no :设置为"no"表示共享文件夹不可写。用户将能够从共享中读取文件,但无法创建、修改或删除文件。

  • valid users = ssl, sll2 :此选项限制指定用户的访问。仅允许用户"ssl"和"sll2"访问此共享。

  • write list = sll2 :"写入列表"选项指定允许在共享文件夹中写入(创建、修改、删除)文件的用户列表。在这种情况下,只有用户"sll2"具有写入权限。

用ssl登录

只可以访问和下载资源 但是不能 put上传csdn.txt文件

用sll2登录

只可以访问和下载资源 但是不能 put上传csdn.txt文件

7.拒绝IP访问

编辑samba配置文件 加入一下

记得重新加载或者重启

bash 复制代码
  hosts deny=192.168.180.180

此刻再用192.168.180.180这台centos来访问

显示拒绝访问

1.NetBIOS解析

nmbd 是 Samba 套件中的一个组件,它主要负责处理 NetBIOS 名称服务(NetBIOS Name Service)。NetBIOS 是一种网络通信协议,最初由 IBM 开发,后来被 Microsoft 扩展和广泛采用。NetBIOS 主要用于在局域网上进行计算机之间的通信和服务发现。

具体而言,nmbd 提供以下功能:

  1. NetBIOS 名称解析: 当计算机需要与另一台计算机通信时,它通常使用对方的 NetBIOS 名称。nmbd 负责将这些 NetBIOS 名称解析为相应的 IP 地址,以便建立连接。

  2. NetBIOS 名称注册: 当一台计算机加入网络时,它需要注册一个唯一的 NetBIOS 名称,以便其他计算机能够找到它。nmbd 处理名称注册的过程。

  3. 服务发现: nmbd 提供 NetBIOS 名称服务,使得其他计算机能够发现网络上提供共享资源的计算机,例如文件共享和打印服务。这对于 Samba 服务器在混合网络环境中与 Windows 系统进行交互非常重要。

nmbd 通常与 smbd(SMB 守护进程)一起使用,smbd 负责提供文件和打印服务。这两个组件协同工作,使得 Samba 能够在混合操作系统环境中实现文件和打印共享。

就相当于解析名称 和解析域名原理大致相似 在早期提高安全性 现在这种方式早已过时 大家了解即可

如图所示

加入别名 sunshaolong ds

编辑配置文件加入

bash 复制代码
username map =/etc/samba/smbuser

记得重新加载或重启

测试访问

记得把拒绝访问注释掉 不然是无法访问的

这时我用别名访问也是可以的

2.Windows访问过程

cmd 输入 服务器ip地址

输入正确的用户名和密码即可登录 具体权限和linux上面一样

用户的权限具体分配是根据 samba的配置文件来规定

相关推荐
UCH1HA17 分钟前
MySQL主从复制与读写分离
linux·mysql·集群
Xの哲學33 分钟前
Linux 文件系统一致性: 从崩溃恢复到 Journaling 机制
linux·服务器·算法·架构·边缘计算
学烹饪的小胡桃33 分钟前
WGCAT工单系统 v1.2.7 更新说明
linux·运维·服务器·网络·工单系统
BigBigHang34 分钟前
【docker】离线设备安装镜像
运维·docker·容器
学好statistics和DS38 分钟前
Docker文件与本地文件,系统
运维·docker·容器
liuc031742 分钟前
docker下安装SearXNG
运维·docker·容器
云飞云共享云桌面1 小时前
非标自动化工厂的设计云桌面为什么要选云飞云智能共享云桌面?
大数据·运维·服务器·网络·自动化·负载均衡
oMcLin1 小时前
如何在CentOS 8上配置并优化Docker与Kubernetes结合的容器集群,提升微服务部署效率?
docker·kubernetes·centos
翼龙云_cloud1 小时前
阿里云渠道商:阿里云自动扩缩容配置教程
运维·服务器·阿里云·云计算
别多香了1 小时前
系统批量运维管理器 paramiko
linux·运维·服务器