前缀、文档修改记录
20230309 初始化编辑此文章,完稿
20240520 更新,增补iOS环境下,文件连接samba出现错误代码100093的问题
需求描述:
在我的那台树莓派设备系统上,系统为Raspbian,安装samba服务,非常给力,好用。
而且,现在市面上多数的安卓智能电视,电视盒子,都支持samba,可以直接在家里通过该协议观看samba服务里的影视剧集。
推荐,仅在局域网环境下使用samba服务。在公网使用,性能差,且安全风险高。
20220420,文档更新校正,完善内容,增加samba多目录,samba权限控制,账号。
20230309,文档更新内容,增加Linux命令行下如何挂载samba卷。
第一章,服务器,SAMBA安装,过程非常简单
root@server:~# apt-get update
root@server:~# apt-get install samba
第二章,配置
先停止安装后自动开启的samba服务,然后修改配置文件
root@server:~# systemctl stop smbd
假设如下的几个是我的分享目录,创建几个目录
mkdir -p /media/HDD1TB/downloads /media/HDD1TB/ingDowns /media/HDD1TB/TVSHOW
为samba配置一个普通的用户,名字为fd
root@server:~# mkdir -p /home/fd
root@server:~# useradd -U -s '/bin/bash' -d '/home/fd' fd
root@server:~# chown -R fd:fd /home/fd
root@server:~# passwd fd
root@server:~# chown -R fd:fd /media/HDD1TB/
root@server:~# chmod 777 /media/HDD1TB
root@server:~# usermod -aG fd debian-transmission # 我下载BT到这个目录,所以,把BT用户归纳到fd组
root@server:~#
root@server:~# smbpasswd -a fd # 增加samba用户
root@server:~# smbpasswd -a root # 增加samba用户
root@server:~# smbpasswd -x fd # 删除samba用户,新建时,无需执行
root@server:~# smbpasswd -x root # 删除samba用户,新建时,无需执行
修改配置文件 /etc/samba/smb.conf
// 配置的逻辑为, /media/HDD1TB这个目录root用户可以全部访问,而用户fd只能访问其中的子目录/media/HDD1TB/TVSHOW
[MULTI_SHARE]
comment = Multi Media Files Share
path = /media/HDD1TB
browseable = yes
valid users = root
force group = root
create mask = 0660
directory mask = 0771
writable = yes
read only = no
guest ok = no
[TV]
comment = TV SHOW ACCESS
path = /media/HDD1TB/TVSHOW
browseable = yes
valid users = fd
force group = fd
create mask = 0660
directory mask = 0771
writable = yes
read only = no
guest ok = no
// 查看SAMBA服务器上的版本
root@server:~# samba --version
Version 4.9.5-Debian
root@server:~#
// 查看当前SAMBA服务器的运行情况
root@server:~# smbstatus
root@VMSMB:~# smbstatus -p
Samba version 4.9.5-Debian
PID Username Group Machine Protocol Version Encryption Signing
----------------------------------------------------------------------------------------------------------------------------------------
1799 nobody nogroup Dell (ipv4:10.11.11.179:54212) NT1 - -
1142 fd fd 10.11.11.179 (ipv4:10.11.11.179:5029) SMB3_11 - partial(AES-128-CMAC)
1985 fd fd 10.11.11.179 (ipv4:10.11.11.179:38794) SMB3_11 - partial(AES-128-CMAC)
参数
MULTI_SHARE,TV 这些是你自定义的服务项的名称,后面客户端访问时候需要
comment 一些用于提醒的消息,这个一般都是配置提示
path 需要分享的目录
browseable 默认为yes,一般不需要修改
第三章,重启samba服务
root@server:~# systemctl restart smbd
第四章,客户端访问
1、Linux桌面环境
smb://ipaddress/MULTI_SHARE # 如果用root访问
smb://ipaddress/TV # 如果用普通用户fd访问
2、Windows桌面环境
\\ip-address\MULTI_SHARE
3、iOS环境访问
苹果系统, 文件, 右上方三个圆点, 连接服务器(如果没有出现连接服务器,则你的iOS系统版本太旧了,请先升级系统)。
服务器栏目填入 smb://ip-address
注册用户
名称填入 有效的samba用户名
密码填入 有效的对应samba账号密码
若此苹果系统的文件,连接SAMBA,出现错误代码 100093的情况(SAMBA版本 4.13.13,iOS版本16.3)
修改配置文件
在[global]这个标签下方新建一行内容,内容为:
vfs objects = fruit streams_xattr
修改完的样子如图,重启smbd服务即可。
第五章,客户端访问,Linux的Shell 命令行环境
// 安装 smbclient 功能组件
# apt install smbclient
// 查看确认SAMBA服务器信息
# smbclient -L //SAMBA-SERVER-IP
// 安装cifs-utils 功能组件
// 支持的协议版本
// SMB 1
// SMB 2.0
// SMB 2.1
// SMB 3.0 带加密
# apt install cifs-utils
// 创建需要的挂载目录,并给到充足的读写权限,本地挂载目录,假设为 /SAMBA
# mkdir /SAMBA
# chmod 777 /SAMBA
// 执行挂载操作
// 参数 serverUserName SAMBA用户
// 参数 myServerIpAdress SAMBA服务地址
// 参数 sharename SAMBA服务配置的[MULTI_SHARE]分享名称
// 参数 /mnt/myFolder/ 本地挂载目录,假设为 /SAMBA
# mount -t cifs -o username=serverUserName //myServerIpAdress/sharename /mnt/myFolder/
# mount -t cifs -o vers=3.0,username=fd,password=PassValid //10.11.11.200/SD /SAMBA
// 可选,增加一个用户名,密码的文件,共mount调用
// 参数 credentials=/path/samba/smb.token
// username=fd
// password=PassValid
// domain=WORKGROUP
# chmod 600 /path/samba/smb.token
# mount -t cifs -o credentials=./smb.token //10.11.11.200/SD /SAMBA
附录1、参考文档
https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
https://ubuntu.com/tutorials/install-and-configure-samba#4-setting-up-user-accounts-and-connecting-to-share