Samba 允许运行 Microsoft Windows 的计算机和运行 Unix 的计算机之间共享文件和打印。
介绍
- Samba 是在 Linux/UNIX 系统上实现 SMB 协议的一个免费软件,由服务器和客户端程序构成,它能让 Linux 服务器实现文件服务器、身份授权和认证、名称解析和打印服务等功能。
SMB(Server Messages Block,服务信息块)
是一种在局域网上共享文件和打印机的一种通信协议CIFS(Common Internet File System)
通用因特网文件系统,CIFS 由美国微软公司开发
安装
服务端安装
# ubuntu
apt-get install samba samba-common -y
$ samba --version
Version 4.19.5-Ubuntu
# centos
yum install samba -y
服务端配置
sudo mkdir -p /data/samba
# 在文件最后添加
[share]
comment = share folder
browseable = yes
read only = no
create mask = 0700
directory mask = 0700
valid users = root
write list = root, @root
path = /data/samba
# 默认 samba 不支持软链接,需要配置如下 3 条规则,挂载参数需要指定 mfsymlinks
# follow symlinks = yes
# wide links = yes
# unix extensions = no
$ smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
systemctl restart smbd.service nmbd.service
- 监听端口
TCP:139
NetBIOS Name Server (NBNS) 端口,用于发现其他 Samba 服务器和工作站TCP/UDP:445
SMB 2.0/3.0 端口,用于文件和打印共享
- 日志
/var/log/samba/
mac 客户端
Finder
-> Go(前往)
-> Connete to Server...(连接服务器)(Command+K)
输入,点击连接
# smb://主机IP或主机名/共享名
smb://192.168.179.159/share
ubuntu 挂载
# 安装客户端
sudo apt-get install cifs-utils
$ ls -lhart /usr/sbin/ | grep cifs
mount.smb3 -> mount.cifs
mount.cifs
# 帮助
$ man mount.smb3
# 挂载,uid,gid 使用 id 命令获取 数字或用户名
sudo mount.cifs //<ip>/<path> <local-path> -o rw,username=<user>,password=<pwd>,uid=<uid>,gid=<gid>
sudo mount -t cifs //server-address/folder /mount/path/on/local -o username=<user>,password=<PASSWORD>,uid=<user>,gid=<group>
# sudo mount.cifs //192.168.179.159/share /mnt -o rw,username=root,password=123456,uid=1000,gid=1000,mfsymlinks
# 也可放到 /etc/fstab 中自动挂载
//<ip>/<path> <local-path> cifs rw,username=<user>,password=<pwd>,uid=<uid>,gid=<gid> 0 0
windows 挂载
Windows 共享文件夹
F&Q
samba parse_dfs_path_strict: can’t parse hostname from path
/var/log/samba/log.xx
报如上错误,配置 valid users = "root"