Samba服务器了解(防守)

Samba是一个开源软件套件,它允许在不同操作系统之间共享文件、打印机和其他资源。它是基于SMB/CIFS协议,这是一种用于在Windows系统中共享文件和打印机的网络协议。Samba服务器可以在Linux、Unix、macOS和其他操作系统上运行,并与Windows系统无缝集成。

当谈到Samba服务器时,以下是一个简单的介绍和架构图,以帮助你更好地理解它的工作原理和组成部分。

Samba是一个开源的软件套件,允许不同操作系统之间共享文件、打印机和其他资源。它基于SMB(Server Message Block)协议,这是一种用于在Windows系统中共享文件和打印机的网络协议。Samba服务器可以在Linux、Unix、macOS和其他操作系统上运行,并与Windows系统无缝集成。

下面是一个利用sql生成的Samba服务器的基本架构图:

               +-------------------+
               |      Samba        |
               |     Server        |
               |                   |
               +--------+----------+
                        |
                 +------v-------+
                 |     File     |
                 |   Services   |
                 |             |
                 +------^------+
                        |
                 +------v------+
                 |   Printing   |
                 |   Services   |
                 |             |
                 +------^------+
                        |
                 +------v------+
                 |    User     |
                 |  Management |
                 |             |
                 +-------------+

在这个架构中,Samba服务器作为中心,提供了几个主要的功能模块:

  1. 文件服务(File Services):Samba服务器允许共享文件和目录,使得不同操作系统上的计算机可以访问和操作这些共享资源。这使得文件在网络中可以轻松共享和传输。
  2. 打印服务(Printing Services):Samba服务器还提供了打印机共享功能,使得可以在网络上共享打印机资源。这意味着用户可以通过Samba服务器访问和使用网络中的打印机。
  3. 用户管理(User Management):Samba服务器提供了用户认证和权限管理功能。它可以集成现有的用户和组,也可以独立管理自己的用户数据库。这使得管理员可以对用户进行身份验证和授权,以控制对共享资源的访问权限。

通过这些功能,Samba服务器实现了跨平台的文件和打印机共享,使得不同操作系统之间可以方便地共享和访问资源。

Samba服务器简单配置(防守)

  1. 安装Samba:首先,你需要在你的服务器上安装Samba软件包。在大多数Linux发行版中,你可以使用包管理器来安装Samba。例如,在Ubuntu上,你可以使用以下命令安装Samba:
    sudo apt-get install samba
    
  2. 配置Samba:一旦Samba安装完成,你需要进行配置。Samba的配置文件位于/etc/samba/smb.conf。你可以使用任何文本编辑器打开该文件进行编辑。这个配置文件定义了Samba共享的参数,包括共享的目录、访问权限和身份验证方式等。

以下是一个简单的示例配置,共享了一个名为"share"的目录:

[share]
comment = Shared Directory
path = /path/to/shared/directory
browseable = yes
read only = no
guest ok = yes

在这个示例中,path参数指定了要共享的目录的路径。read only设置为"no"表示允许读写访问。guest ok设置为"yes"表示允许匿名访问。

  1. 创建Samba用户:为了访问Samba共享,你需要创建一个Samba用户。Samba用户和系统用户可以是相同的,也可以是独立的。你可以使用以下命令创建一个Samba用户:
    sudo smbpasswd -a username
    

这个命令将提示你设置密码。

  1. 重启Samba服务:在完成配置和创建用户后,你需要重新启动Samba服务以使更改生效。你可以使用以下命令来重新启动Samba服务:

    sudo service smbd restart
    
  2. 访问Samba共享:一旦Samba服务器配置完成并且服务正在运行,你可以从其他计算机上访问Samba共享。在Windows系统中,你可以打开资源管理器,然后在地址栏中输入\samba-server-ip来访问Samba服务器上的共享目录。在macOS和Linux系统中,你可以使用命令行或文件浏览器来访问Samba共享。

这只是Samba服务器入门的基本步骤。你可以根据你的需求进一步配置和扩展Samba服务器,例如设置访问权限、添加更多的共享目录或配置打印服务等。Samba的官方文档提供了更详细的信息和配置选项,你可以参考它来了解更多内容。
Samba - Arch Linux 中文维基:https://wiki.archlinuxcn.org/zh-hans/Samba

Samba服务器配置(进攻)

1.ubuntu直接安装Samba

sudo apt-get install samba samba-common -y

在这里插入图片描述

2.Centos利用yum安装Samba

好像ubuntu22.04无法定位yum包,所以用apt-get
安装yum碰到的最多的问题就是 镜像源的问题,更新后使用:
apt-get upgade
然后install yum
再安装Samba即可。
参考:centOS下yum安装配置samba

3.查看Samba服务器的版本号:

[root@localhost ~]# smbclient -V
Version 4.9.1

命令就长这样,但我好像没试成功…

4.创建用户级别的Samba

user用户级别的samba需以samba用户和密码才能访问

sudo mkdir -p /smb

ps:好像不显示该文件夹,你可以创建一个可见的文件夹,然后替换下面的path路径

5.将用户添加进来,创建Samba密码

sudo useradd 你的用户名
如:
sudo smbpasswd -a Lyh

然后需要创建密码。
在这里插入图片描述

6.给创建的这个目录设置权限

root@ubuntu:~# chmod -R o+rwx /smb  ##设置smb目录的other权限为全部
##或者 chown -R smb:smb /smb      ##设置smb目录的所属用户和组为smb
##或者 chown -R smb /smb      ##设置smb目录的所属用户为smb
root@ubuntu:~# ll -l /|grep smb

输入后会显示:
drwxr-xrwx 2 root root 2 Jul 1 13:17 smb/

7.配置samba的配置文件

sudo gedit /etc/samba/smb.conf

编辑:

##在[global]下添加
security = user  ##原来已经存在则不需要修改  (我的电脑没有添加,添加就连不上~)
##在最后添加下面的内容:
[smb]
comment = smb folder
browseable = yes
path = /smb
create mask = 0700
directory mask = 0700
valid users = smb     #注意:smb代表你的用户名
force user = smb      #注意:smb代表你的用户名
force group = smb     #注意:smb代表你的用户名
public = yes
available = yes
writable = yes

8.重启samba服务器

service smbd restart

9.(可选:设置匿名访问,不用密码验证登陆)匿名级别的samba的配置

步骤与上面的user用户设置一样

mkdir -p /share
[root@localhost ~]# chown nobody:nobody /share    #该行命名貌似对我无效(待研究,不过没影响)
[root@localhost ~]# chmod o+rwx -R /share/
[root@localhost ~]# ll -l / |grep share
drwxr-xrwx    3 nobody nobody   24 Jan 16 16:10 share

修改文件:

vim /etc/samba/smb.conf
##找到 security = user 修改为
#security = user  #不一定需要输入这一行
map to guest = Bad User
##在最后添加下面的内容:
[share]
comment = share folder
browseable = yes
path = /share
public = ok
guest ok = yes
writable = yes

重启samba服务:

service smb restart

10.linux(ubuntu)上验证:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在Window查看:
Win+R运行linux中的ip地址,若不知道自己的ip,linux中可以使用命令:ifconfig,或:
ubuntu中查看IP地址命令
当然,你也可以直接在文件管理中直接输入:\198.162.1.1(两个双斜杠+你的ip地址)。
最后出现在这里插入图片描述点击smb共享文件夹,即可。

补充:
多用户永久挂载:

vim /etc/fstab
写入:
//172.25.254.125/mac    /mnt    cifs    defaults,credentials=/root/smb_auth,sec=ntlmssp,multiuser       0 0

关闭防火墙:

systemctl stop firewalld.service

windows清除samba登陆用户 Windows命令:net use * /delete

windows查看samba挂载情况:

net use #查看samba挂载情况
net use * /delete #断开所有
net use \\x.x.x.x\public /delete #断开指定

另外:

sudo /etc/init.d/samba start    //启动Samba服务器只需执行如下命令:
sudo /etc/init.d/samba stop     //关闭Samba服务器:
sudo /etc/init.d/samba restart  //重新启动Samba服务器:
ps -aux | grep samba            //查看samba是否正在运行

参考:
Samba服务器(cifs)详解
005.SMB之user级别配置
win10访问共享提示【输入网络凭证】解决方法

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐