引言
- 场景:由于公司升级安全系统后,想访问服务器都需要使用跳板机再访问代理服务器,但是有时候第三方软件比如xftp设置代理模式失效,rz和sz又限制文件大小(4G),所以我意外知道了samba模块,可以完成我需要的功能
- 以下为在docker容器中操作的步骤
samba原理介绍
- 上图是我们搭建samba服务的大体框架,在samba服务中可以配置用户的访问权限。用户user1 和user2 访问自己的网络文件夹。其中samba服务需要使用系统端口139和445,139端口主要是SMB运行NBT(NetBIOS over TCP/IP)上使用,445是win2000后SMB直接在tcp/ip上使用的端口。所以没有特殊的NBT层,可以只使用445端口。
使用docker操作
# docker hub
# https://registry.hub.docker.com/r/dperson/samba
关于官方配置介绍
- 具体看原文参考链接
- 我们只需要整理一下拿到我们需要用的参数即可
- docker中常见的启动参数就不介绍了,主要是看samba启动时配置的 -p -u 和 -s。如果需要进行权限管理,那么就需要加上-p,否则默认是全公开的访问。那么-u和-s就是对用户以及共享文件的管理参数设置了。
权限设置
- -u 新增用户 user1 user2
- -s 配置文件夹和访问权限
- 例如:
使用docker创建
sudo docker run -it -p 139:139 -p 445:445 \
-v /path/to/directory:/share \
-d dperson/samba -p \
-u "user1;badpass" \
-u "user2;badpass" \
-s "public;/share/public" \
-s "share_1_2;/share/dir_1_2;yes;no;no;user1,user2;admin;admin;user1与user2专用" \
-s "share1;/share/dir1;yes;no;no;user1;admin;admin;user1专用" \
-s "share2;/share/dir2;no;no;no;user2;admin;admin;user2专用"
- 原作者还给出来另一种配置yml文件的方式,具体看参考资料
如何使用(以个人为例)
结尾
- 本文仅使用简单的文件传输功能,更多功能以及samba介绍请见参考资料
- 使用容器建立samba需要掌握docker容器参数,以后本人也会整理一篇关于dockers容器常见操作的文章