文章目录
一、Samba是什么有什么用
Samba是一个开源的软件套件,用于实现文件和打印机共享功能。它允许不同操作系统的计算机通过网络共享文件夹和打印机,特别是在Linux和Windows系统之间进行文件共享。Samba使用了SMB(Server Message Block)协议来实现文件和打印机共享功能。它提供了一种 跨平台的解决方案,使得Linux和Windows等操作系统可以互相访问和共享文件资源,方便了文件管理和协作。
二、本文实现的结果
在ubuntu里安装和配置samba服务的,使得与之同在一个局域网内的windows电脑可以把ubuntu里的共享目录挂载到本机。然后在windows里可以像访问本机磁盘一样访问ubuntu里的目录和文件。
三、准备工作
在运行windows11的电脑里安装好virtualbox7.0虚拟机。
在virtualbox7.0虚拟机里安装好ubuntu-22.04.3-desktop-amd64,虚拟机的网络模式设置为桥接模式。
windows11的局域网IP地址设置为192.168.6.10。
ubuntu的局域网IP地址设置为192.168.6.50,要求能访问公网。
ubuntu使用非root用户账号ltmz登录。
四、在ubuntu里进行的操作步骤
1.安装samba
sudo apt-get update
sudo apt-get install samba
2.创建samba专用账户
下面命令添加一个不能登录linux控制台只访问samba共享目录的用户到Ubuntu系统中。命令里的samba 是ubuntu的一个账户名称,可任意定义。在windows电脑上访问ubuntu共享目录时需要输入这个账号名。也可以跳过这一步,直接使用可登录linux控制台的ltmz用户。
sudo useradd samba -s /usr/sbin/nologin
3.将用户名添加到samba的smbpasswd file中(即在samba服务中注册该账户)
下面命令里的samba和ltmz是ubuntu系统里存在的用户名。运行命令后会提示设置新密码。在windows电脑上访问ubuntu的共享目录时需要输入这个密码。
sudo smbpasswd -a samba
或者
sudo smbpasswd -a ltmz
4.创建一个共享目录
如果指定其它已经存在的目录作为共享目录,则跳过这一步。
sudo mkdir -p /home/tmphome
5.设置共享目录所属用户组
下面命令里的samba和ltmz是ubuntu系统里存在的用户名。运行下面命令后使得步骤3的用户能够访问共享路径。
sudo chown samba:samba /home/tmphome
或者
sudo chown ltmz:ltmz /home/tmphome
6. 修改samba配置文件
samba的配置文件是/etc/samba/smb.conf。可用vi或者其它文本编辑软件打开这个配置文件,在配置文件末尾新增下面内容。
[tmphome]
#该共享目录的描述
comment =ubuntu share dir
#访问的ubuntu实际路径,即步骤4和5操作的目录
path = /home/tmphome
#设置可访问的用户,此处为前面第3步添加的用户名
valid users = ltmz
#是否允许访客,否
guest ok = no
#是否可写,是
writable = yes
#是否可浏览,是
browsable = yes
7. 重启服务,使上述设置生效
sudo service smbd restart
sudo service nmbd restart
8. 关闭防火墙
Samba使用多个TCP和UDP端口,通常samba都是在局域网里用,为了开发方便,可以直接关闭ubuntu的防火墙。
sudo ufw status
sudo ufw disable
五、在windwos宿主电脑里进行的操作步骤
1.打开文件资源管理器
在地址栏输入下面内容后回车。在弹出的对话框里输入上述samba账号(如ltmz或samba)和密码后确认。
\\192.168.6.50
如下图所示:
2.挂在为网络磁盘
鼠标选中tmphome文件夹,在右键菜单选择“映射网络驱动器”,如下图所示:
3.选择驱动器
在弹出的对话框中,选择希望使用的驱动器序号,然后点击“完成”。如下图所示:
4.使用共享目录
打开“文件资源管理器”,左侧菜单选择“此电脑”,在右侧可以看到z分区。
总结
通过上述步骤操作后,在windows里可以像操作本地磁盘分区一样,对ubuntu通过samba共享出来的目录(挂载为z分区)里的子目录和文件进行任何新增、删除、读写、执行操作。