Samba 是年代久远的文件服务器,使 windows 能从 Linux 系统中上传和下载文件。但是因为配置和逻辑难以理解,有时候难以搭出想要的形式。本文试着总结出 Samba 服务器的搭建技巧。
安装
ubuntu/debian 系统,使用如下命令安装:
$ sudo apt-get install -y samba
centos系统,安装命令是
$ yum -y install samba
安装后,samba 的配置文件位于 /etc/samba/smb.conf
一个比较好的实践是,将这个文件复制一个备份出来, 当后面尝试失败后,还能从头开始。
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
匿名下载
这是一个匿名下载的例子
# smb.conf
[doc]
comment = doc
path = /path/to/doc
writable = no
guest ok = yes
browseable = yes
上面各配置项的解释:
- comment : 注释
- path : 映射的服务器本地的目录,这个目录必须有足够的读权限,比如755
- writable : no 表示不可写
- guest ok : 允许匿名
- browseable : 从"网络邻居"里可以查看
匿名上传
这是一个匿名上传的例子
# smb.conf
[upload]
comment = upload
path = /path/to/upload
writable = yes
guest ok = yes
browseable = yes
create mask = 0755
public = yes
上面配置项的解释:\
- create mask : 上传文件的默认权限设置\
- path : 映射的服务器本地的目录,这个目录必须有足够的写权限,比如777
关于用户认证
不同的客户系统登录 samba 的时候,登录方式是不同的。 Windows 会使用当前用户名和密码,登录 Samba。而Mac 则可以设置登录的用户名。而 Samba 则自己保存一套用户名列表,当收到登录请求后,Samba 会根据请求的用户名和配置文件规定的登录逻辑,决定是否允许用户登录、下载和上传。 当通过以后,Samba 会以该用户名去向 Linux 请求文件,这时还需要 Linux 的文件系统赋予足够的权限。
下面看看如何在不同的系统上配置实名上传和下载。
实名下载
当 Windows 向 Samba 服务器发出浏览请求时,会把当前的用户名和密码一并发给 Samba。假设 Windows 当前使用 Administrator 用户名,和空密码登录
然而 Samba 并不接受空密码,所以登录失败,Samba 会将这次请求当做一个 bad user , 如果 smb.conf 里的 global 一节里面配置了 map to guest = Bad User,Samba会把这次登录转换为 guest 匿名登录。
# smb.conf
[global]
map to guest = Bad User
而且同时你准备访问的资源设置了允许 guest 匿名登录
# smb.conf
[doc]
guest ok = yes
那么这个资源仍然可以访问。但是如果上述的 guest ok 设置了 no ,则 Samba 会向 Windows 要求手动输入用户名和密码,这时就会在 Windows 界面上看到用户名密码的提示框。
所以正确的做法是,登录 windows 使用带密码的用户名,比如 winuser ,再在 samba 里面添加同一个用户名 winuser,命令是
$ sudo smbpasswd -a winuser
然后,在 Linux 里面,需要有 winuser 用户,而且 winuser 要对下载的路径有读权限。
这是一个实名下载的例子
# smb.conf
[global]
....
security = user
....
[doc]
comment = doc
path = /path/to/doc
writable = no
guest ok = no
browseable = yes
valid users = winuser
配置文件里的 winuser 需要修改为你的 windows 用户名
实名上传
只要在上一节里的配置文件 writable 设置为 yes 即可
# smb.conf
[global]
....
security = user
....
[doc]
comment = doc
path = /path/to/doc
writable = yes
guest ok = no
browseable = yes
valid users = winuser
如果您对本文有疑问或者寻求合作,欢迎 联系邮箱 。邮箱已到剪贴板
精彩评论
本站 是个人网站,采用 署名协议 CC-BY-NC 授权。
欢迎转载,请保留原文链接 https://www.lfhacks.com/tech/samba/ ,且不得用于商业用途。