<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="利用 docker 搭建 samba 服务器 以及ubuntu下访问samba">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2023-11-02 10:21<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
利用 docker 搭建 samba 服务器 以及ubuntu下访问samba


例子：




XML/HTML代码


    sudo docker run -it --name samba -p 139:139 -p 445:445 \

        -v /home/pch18:/mount-home \

        -d --restart always dperson/samba -S \

        -s &quot;pch18;/mount-home;no;no;no;pch18;pch18&quot; \

        -s &quot;share;/mount-home/share;yes;yes;yes;all&quot; \

        -s &quot;free;/mount-home/free;yes;no;yes;all;none&quot; \

        -u &quot;pch18;password&quot;




说明：




XML/HTML代码


    sudo docker run -it --name samba -p 139:139 -p 445:445 \

        -v /{实体机挂在目录}:/{容器中映射目录} \

        -d --restart always dperson/samba -S \

        -s &quot;{共享名称};/{容器中共享目录};{可浏览yes|no};{只读yes|no};{访客登录yes|no};{用户列表all|用户名};{管理员列表none|用户名};{可写白名单列表none|用户名}&quot; \

        -u &quot;{增加用户名};{密码}&quot;




-S标签是兼容 linux 设备可以访问。




-- 如果要可以写入修改权限，必须用户列表和管理员列表同时设置此用户。


-- 只在用户列表设置，没有修改权限。


-- 只在管理员列表设置，直接不能访问。






-- 用户列表用 , 逗号分隔


-- 访客的身份是nobody，如果要访客具有写入修改权限，设置管理员列表为nobody即可






ubuntu下访问samba


如果samba服务是用上面docker创建,并且加上了-S参数,那可以用ubuntu自带的连接服务器连接.


如果samba服务是win8-win10创建的话,就不能用ubuntu自带的连接服务器连接了.


需要使用cifs-utils挂载, 具体命令如下




XML/HTML代码


    sudo apt install cifs-utils

    sudo mkdir /mnt/@share

    sudo mount.cifs //192.168.50.50/@share /mnt/@share -o username=guest,dir_mode=0777,file_mode=0777







开机挂载


vi /etc/fstab 在后面添加






XML/HTML代码


    //192.168.50.50/@share /mnt/@share cifs defaults,username=guest,password=,dir_mode=0777,file_mode=0777









mount -a 检查是否成功，如没有任何显示说明没问题。


建立一个任何人可以访问的只读共享




XML/HTML代码


    sudo docker run -it --name samba -p 139:139 -p 445:445 \

        -v /opt/share:/mount-home \

        -d --restart always dperson/samba -S \

        -s &quot;share;/mount-home/share;yes;yes;yes;all&quot; 




建立一个任何人可以访问的允许读写的共享




XML/HTML代码


    sudo docker run -it --name samba -p 139:139 -p 445:445 \

        -v /opt/share:/mount-home \

        -d --restart always dperson/samba -S \

        -s &quot;share;/mount-home/share;yes;no;yes;all&quot; 




镜像地址：https://hub.docker.com/r/dperson/samba


快速建立一个只读权限的匿名共享：




XML/HTML代码


    docker run -d --restart=always -p 135:135/tcp -p 137:137/udp -p 138:138/udp -p 139:139/tcp -p 445:445/tcp -v /opt/share/:/data/shared --name samba geisler/alpine-samba-anonymous:0.1




配置文件可以进入容器直接命令修改 smb.conf 非常简单。


</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
