前置,文章使用环境:

System        : Ubuntu 20.04.6 64 bit
Kernel        : 5.15.0-126-generic
CPU Info      : Intel(R) Core(TM) i5-8600K CPU @ 3.60GHz 1 Pcs 6 Core/pcs
CPU Cores     : 6
CPU Arch      : x86_64 

1. install samba

sudo apt-get update
sudo apt-get install samba

2.config

创建共享目录

sudo mkdir -p /data/smb_root

用户创建及注册

# 添加一个系统用户到smb,注意 是 系统用户 所以需要保证 先在系统存在用户
sudo useradd smbuser -s /usr/sbin/nologin
# 修改文件权限
sudo chown smbuser:smbuser /data/smb_root
# 在samba服务中注册该账户
sudo smbpasswd -a smbuser

共享配置

# 修改samba配置文件(/etc/samba/smb.conf)
sudo vim /etc/samba/smb.conf
# add context
[smb_dir]                        # 共享目录名
    comment = common files       # 共享目录描述
    path = /data/smb_root        # 路径
    valid users = smbuser        # 设置可访问的用户
    guest ok = no                # 是否允许访客,否
    writable = yes               # 可写,是
    browsable = yes              # 可浏览,是

记得验证下参数合法

testparm /etc/samba/smb.conf

# 示例:配置中有多余字符
❯ testparm /etc/samba/smb.conf                                                                                                                               ─╯

Load smb config files from /etc/samba/smb.conf
set_variable_helper(no # 是否允许访客,否): value is not boolean!
Error loading services.
# 示例:正常
❯ testparm /etc/samba/smb.conf                                                                                                                               ─╯

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

3. apply

sudo service smbd restart
sudo service nmbd restart

4. connect smb

mac

在finder(访达,文件管理器)中用快捷键 cmd + k 打开链接对话框输
输入smb://IP(部署了samba服务的机器的ip地址)

win

调出运行 win+r 快捷键 (也可在文件管理器的地址栏中执行以下操作)
输入\\IP(部署了samba服务的机器的ip地址)

也可映射为网络磁盘使用。

linux

# 和挂载硬盘无本质差异
sudo mount -t cifs //ip/username  local_dir -o user=xxx,passwd=xxx

smb cli

# 查看用户列表
pdbedit -L
 
# 对samba用户进行管理
smbpasswd -h  #查看支持的命令列表
 
# 异常时可查看日志情况
cat /var/log/samba/log.%m