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服务器作为中心,提供了几个主要的功能模块:
通过这些功能,Samba服务器实现了跨平台的文件和打印机共享,使得不同操作系统之间可以方便地共享和访问资源。
sudo apt-get install 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"表示允许匿名访问。
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
sudo apt-get install samba samba-common -y
好像ubuntu22.04无法定位yum包,所以用apt-get
安装yum碰到的最多的问题就是 镜像源的问题,更新后使用:
apt-get upgade
然后install yum
再安装Samba即可。
参考:centOS下yum安装配置samba
[root@localhost ~]# smbclient -V
Version 4.9.1
命令就长这样,但我好像没试成功…
user用户级别的samba需以samba用户和密码才能访问
sudo mkdir -p /smb
ps:好像不显示该文件夹,你可以创建一个可见的文件夹,然后替换下面的path路径
sudo useradd 你的用户名
如:
sudo smbpasswd -a Lyh
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/
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
service smbd restart
步骤与上面的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
在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访问共享提示【输入网络凭证】解决方法