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服务器作为中心,提供了几个主要的功能模块:
- 文件服务(File Services):Samba服务器允许共享文件和目录,使得不同操作系统上的计算机可以访问和操作这些共享资源。这使得文件在网络中可以轻松共享和传输。
- 打印服务(Printing Services):Samba服务器还提供了打印机共享功能,使得可以在网络上共享打印机资源。这意味着用户可以通过Samba服务器访问和使用网络中的打印机。
- 用户管理(User Management):Samba服务器提供了用户认证和权限管理功能。它可以集成现有的用户和组,也可以独立管理自己的用户数据库。这使得管理员可以对用户进行身份验证和授权,以控制对共享资源的访问权限。
通过这些功能,Samba服务器实现了跨平台的文件和打印机共享,使得不同操作系统之间可以方便地共享和访问资源。
Samba服务器简单配置(防守)
- 安装Samba:首先,你需要在你的服务器上安装Samba软件包。在大多数Linux发行版中,你可以使用包管理器来安装Samba。例如,在Ubuntu上,你可以使用以下命令安装Samba:
sudo apt-get install samba
- 配置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"表示允许匿名访问。
- 创建Samba用户:为了访问Samba共享,你需要创建一个Samba用户。Samba用户和系统用户可以是相同的,也可以是独立的。你可以使用以下命令创建一个Samba用户:
sudo smbpasswd -a username
这个命令将提示你设置密码。
-
重启Samba服务:在完成配置和创建用户后,你需要重新启动Samba服务以使更改生效。你可以使用以下命令来重新启动Samba服务:
sudo service smbd restart
-
访问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 vim /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中可以使用命令:Lifconfig,或:
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访问共享提示【输入网络凭证】解决方法