Samba 是用来让 UNIX/Linux 系统和 Windows 系统连接和共享文件的程序,如果你有一台 Linux 服务器,就可以通过 Samba 来创建共享,打造自己的私人网盘。
假设你使用的 Linux 发行版是 Ubuntu,本文以 Ubuntu 20.04 为例,如果版本间隔过大,文件位置可能会有差异。
一、安装 Samba Server
Ubuntu 作为最流行的 Linux 发行版之一,其包管理系统非常完善,可以直接用 apt 命令安装 Samba Server 极其依赖。
apt-get install samba samba-common-bin acl -y
安装完成就可以启动 Samba Server 并将其添加到开机自启。
systemctl start smbd nmbd
systemctl enable smbd nmbd
通过查看版本信息来确认 Samba 是否已经安装好并正常运行:
smbd --version
二、创建一个加密共享
Samba Server 安装好之后,我们可以开始创建共享,方法是编辑配置文件。
用你常用的编辑器打开 Samba 主配置文件,例如:
vim /etc/samba/smb.conf
接着,在文件底部添加如下信息:
[Private]
comment = private share
path = /data/private/
browseable = yes
guest ok = no
writable = yes
valid users = @samba
保存和关闭文件,之后在系统下添加一个用户:
# user1 只是演示,根据你的需要自定义用户账户
adduser user1
你会看到如下输出:
Adding user `user1' ...
Adding new group `user1' (1000) ...
Adding new user `user1' (1000) with group `user1' ...
Creating home directory `/home/user1' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for user1
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
除了 New password: 和 Retype new password: 需要输入两次密码,其他都可以按 Enter 跳过。
接着设置 Samba 密码:
smbpasswd -a user1
输入两次密码,用户便添加完成:
New SMB password:
Retype new SMB password:
Added user user1.
接下来创建 Samba 用户组,并把新建的用户 user1 添加进组。
groupadd samba
gpasswd -a user1 samba
还记得修改 Samba 配置文件时有个 path 吗?这个就是共享目录的路径。如果按照上面演示的内容,你需要这样创建:
mkdir -p /data/private
接着给共享目录添加读写权限:
setfacl -R -m "g:samba:rwx" /data/private
检查一下配置文件是否有任何错误:
testparm
最后,重启一下 Samba Server。
systemctl restart smbd nmbd
三、创建一个公开共享
如果你想创建一个人人都能直接访问的 Samba 共享,请参考此部分操作。
依旧是编辑主配置文件:
vim /etc/samba/smb.conf
将以下内容添加到文件最后:
[Public]
comment = public share
path = /data/public/
browseable = yes
writable = yes
guest ok = yes
保存和关闭文件,接着创建共享目录:
mkdir -p /data/public/
赋予共享目录读写权限:
setfacl -R -m "u:nobody:rwx" /data/public
最后重启 Samba Server 即可。
systemctl restart smbd nmbd
总结
通过以上方法,我们在 Ubuntu 中安装和启动 Samba Server,编辑配置文件创建了共享,添加了相关用户和组来实现用户身份验证,还创建了一个公开共享,任何人都可以直接访问共享的文件。
如果你是在服务器上安装和配置 Samba,那么务必要注意配置防火墙,放行 Samba 的端口。
以下是 Samba 使用的所有端口,如果只是为了连接文件共享,通常只需放行 445 即可:
1)Port 137 (UDP) – NetBIOS 名字服务
2)Port 138 (UDP) – NetBIOS 数据报服务
3)Port 139 (TCP) – 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4)Port 389 (TCP) – 用于 LDAP (Active Directory Mode)
5)Port 445 (TCP) – NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6)Port 901 (TCP) – 用于 SWAT,用于网页管理Samba
感谢阅读,文章如有帮助,欢迎点赞、评论、打赏和转发!
参考文章: