日度归档:2022年2月10日

Ubuntu/Debian/Raspberry环境上,配置samba服务 20230309

前缀、文档修改记录

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