局域网文件共享

背景:为了不浪费机器磁盘,开个smb存放一些日常文件。磁盘IO已经通过lvm cache提上来了,局域网内使用体验瓶颈已经落在了千兆内网上,但依旧足够使用了。

install smb

sudo apt-get update
sudo apt-get install samba

mkdir smb dir

sudo mkdir -p /data/smb_root

config

# 添加一个系统用户到smb
sudo useradd smbuser -s /usr/sbin/nologin
# 修改文件权限
sudo chown smbuser:smbuser /home/work/sharedir
# 在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

restart smb

sudo service smbd restart
sudo service nmbd restart

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