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
提供以下功能:
-
NetBIOS 名称解析: 当计算机需要与另一台计算机通信时,它通常使用对方的 NetBIOS 名称。
nmbd
负责将这些 NetBIOS 名称解析为相应的 IP 地址,以便建立连接。 -
NetBIOS 名称注册: 当一台计算机加入网络时,它需要注册一个唯一的 NetBIOS 名称,以便其他计算机能够找到它。
nmbd
处理名称注册的过程。 -
服务发现:
nmbd
提供 NetBIOS 名称服务,使得其他计算机能够发现网络上提供共享资源的计算机,例如文件共享和打印服务。这对于 Samba 服务器在混合网络环境中与 Windows 系统进行交互非常重要。
nmbd
通常与 smbd
(SMB 守护进程)一起使用,smbd
负责提供文件和打印服务。这两个组件协同工作,使得 Samba 能够在混合操作系统环境中实现文件和打印共享。
就相当于解析名称 和解析域名原理大致相似 在早期提高安全性 现在这种方式早已过时 大家了解即可
如图所示
加入别名 sunshaolong ds
编辑配置文件加入
bash
username map =/etc/samba/smbuser
记得重新加载或重启
测试访问
记得把拒绝访问注释掉 不然是无法访问的
这时我用别名访问也是可以的
2.Windows访问过程
cmd 输入 服务器ip地址
输入正确的用户名和密码即可登录 具体权限和linux上面一样
用户的权限具体分配是根据 samba的配置文件来规定