前缀、文档修改记录
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