一、什么是Samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

二、安装Samba

1、查看是否有安装samba

samba -V

如果安装了会有对应的samba版本信息输出

2、安装samba

sudo apt install samba samba-common cifs-utils smbclient

三、配置Samba服务

1、创建共享目录(以samba_workspaces为例)

mkdir samba_workspaces

2、为samba设置登录用户

先创建一个用户(以samba_user为例)

sudo useradd samba_user -s /usr/sbin/nologin

设置samba登录用户的密码

sudo smbpasswd -a samba_user

3、设置登录用户对共享目录的权限

先查看samba_workspaces目录的权限

yishurufa@ubuntu:~$ ls -l
总用量 44
drwxrwxr-x  5 yishurufa yishurufa 4096 9月  14 15:12 samba_workspaces

共享目录的拥有者是yishurufa,所属组是yishurufa,登录用户samba_user需要对这个目录进行操作的话,只需要将登录用户添加到这个组里面就可以。

sudo usermod -aG $(whoami) samba_user

将samba_user添加到samba_workspaces所属组,$(whoami)可以得到当前用户名,创建的共享目录的所有者和所属组都是当前用户。

4、修改samba配置文件/etc/samba/smb.conf

sudo vim /etc/samba/smb.conf

将下面内容添加到最后(path为samba_workspaces的实际路径,下面是笔者本地的路径)

[secret]
	comment = this is Linux secret share directory
	path = /home/yishurufa/samba_workspaces
	valid user = samba_user
	guest ok = no
	writable = yes
	browsable = yes
	create mask = 0755
	directory mask =0755

5、如果是ubuntu 18.04还得再加一个权限ntlm auth = yes,位置放在所有共享目录定义[Share Definitions]之前

修改前

# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
   usershare allow guests = yes

修改后

# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
   usershare allow guests = yes
   ntlm auth = yes

6、重启samba服务

sudo service smbd restart

四、测试

1、查看ubuntu的网络ip

虚拟机可以再配置一个虚拟网卡用于samba服务(设置仅主机模式)

ifconfig

2、win10环境和ubuntu环境相互ping通

3、win10环境添加网络驱动

右键“我的电脑” -> 映射网络驱动器 -> 文件夹填入 -> \\192.168.xx.xxx\secret

勾上“使用其他凭据连接”

最后输入用户名和密码

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐