Samba的简单安装和配置——ubuntu
Samba的简单安装和配置——ubuntu
1、概述
Samba是局域网内的跨平台的共享文件服务器。同一网络下Windows与macOS都可以进行访问。Samba是构建在NetBIOS(Network Basic Input/Output System)、SMB(Server Message Block)、CIFS(Common Internet File System)等数十种服务和协议基础上的。
Samba服务所使用的端口和协议,需要端口转发的时候可以参考:
- Port 137 (UDP) - NetBIOS 名字服务 ; nmbd。
- Port 138 (UDP) - NetBIOS 数据报服务。
- Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)。
- Port 389 (TCP) - 用于 LDAP (Active Directory Mode)。
- Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口。
- Port 901 (TCP) - 用于 SWAT,用于网页管理Samba。
2、安装
ubuntu安装很简单,使用apt指令即可。
sudo apt update
sudo apt install samba
确认samba安装成功。
samba -V
3、配置
选择或新建一个文件夹作为共享文件夹。
mkdir /home/foo/share
进行配置。
sudo vim /etc/samba/smb.conf
每一部分的配置都从一对“ [] ”开始(除了“ [global] ”),方括号中的名字将成为共享资源的名称。详细配置方法可以通过man smb.conf
查看。以我自己的配置为例:
[commonshare]
comment = common share directory
path = /commonshare
public = no
valid users = @common
write list = @common
create mode = 0770
directory mode = 0770
force group = common
[share]
comment = hero share dir
path = /home/%U/share
public = no
valid users = %U
write list = %U
path
为共享文件夹路径。public
为是否匿名用户可见。valid users
为有效用户,@
表示用户组。write list
为可以写入的用户,@
同样表示用户组。create mode
、directory mode
,其中的mode
也可以是mask
,这两个选项分别为新建文件和目录的用户权限,数字含义与Linux中的权限相同。force group
为新建文件和目录的所有组,同理force user
为所有者。%U
为会话用户名,是客户端登陆时输入的用户名。以%
开头的值为可替换变量,服务器工作时会替换为对应的值。更多可替换变量可以通过man smb.conf
查看。
以上配置建立了两个共享文件夹,第一个是用于common
组的共享文件夹,组的所有成员都对其中其他成员的文件和目录具有所有权限,可以进行读写和执行。第二个是共享文件夹为用户私人所有,每个登录客户端的用户看到的文件夹路径为其home
目录下的share
文件夹。
对允许使用的用户foo(需要预先在服务器中添加账户)添加Samba服务需要的密码。
sudo smbpasswd -a foo
4、启动
更新防火墙规则允许Samba服务。
sudo ufw allow samba
重启Samba
sudo service smbd restart
5、使用
- Windows
在文件夹的地址栏输入 \\IP地址\配置名
,比如前例中的 \\192.168.0.2\commonshare
。
- ubuntu
打开文件管理器然后点击连接服务器,然后输入smb://192.168.0.2/commonshare
。
- macOS
在访达
目录中, 点击前往
中的连接服务器
输入smb://192.168.0.2/commonshare
。
6、参考
https://ubuntu.com/tutorials/install-and-configure-samba#1-overview
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术