通过在linux上部署samba服务,linux文件系统映射到windows或者linux。下文通过Ubuntu为例,具体方式如下

  1. samba安装
sudo apt-get install samba samba-common

  1. 添加samba用户,以及密码
sudo smbpasswd -a xx

会自动提示输入密码
3. samba配置文件新增用户配置
修改如下文件:`sudo vi /etc/samba/smb.conf

[SHARE]
comment = share home directory
path = /
create mask = 0755
directory mask = 0755
public = yes
writable = yes
valid users = root
browseable = yes

=有冲突=
改为一下方式

[root]
comment = share home directory
path = /
create mask = 0777
directory mask = 0777
public = no
writable = yes
valid users = root
browseable = yes
···
各字段含义如下:

[SHARE]:这是你的Samba共享的名字,这个名字会出现在网络邻居中。
comment = share home directory:这是对你的共享的描述,仅供参考,不影响共享的使用。
path = /:这是你的共享文件夹在服务器上的路径。这里配置为根目录,意味着使用者拥有对整个文件系统的访问权限,而这通常并不安全。你通常应该指定一个特定的目录作为共享目录。
create mask = 0755 和 directory mask = 0755:这些设置适用于新创建的文件和目录,它们定义了默认的文件和目录权限。在这里,权限被设置为755,这表示用户拥有读/写/执行权限,而组群和其他用户只有读和执行权限。
public = yes:这允许未经身份验证的用户访问该共享。
writable = yes:这允许用户具有对共享文件夹的写权限。
valid users = root:这意味着只有root用户可以访问这个共享。
browseable = yes:这意味着此共享可以在网络邻居或其他类似的网络浏览工具中被看到。

4. 重启`smba`服务

sudo systemctl restart smbd

或者

/etc/init.d/smbd restart

5. windows映射
5.1 我的电脑映射网络驱动器
5.2 输入linux设备地址:格式如下:`\\192.168.0.79\Share`,其中`Share`即为`smb.conf`共享出的名字
5.3 输入`samba`中增加的用户名以及密码

6.linux映射——通过挂载方式
6.1 创建挂在路径,推荐在`/mnt`路径下挂载临时文件,其他位置可能存在挂载无法取消问题

sudo mkdir -p /mnt/share

6.2 挂载

sudo mount -t cifs //ip/share /mnt/share -o username=root,password=*

6.3 取消挂载

#!/bin/bash

获取正在使用 /mnt/share 的进程 ID

pids=$(sudo fuser -m /mnt/share 2>/dev/null | awk ‘{for (i=2; i<=NF; i++) printf "%s ", $i}’)

检查是否有进程在使用挂载点,不杀死进程,可能有很多系统进程都在监视

if [ -n “$pids” ]; then
echo “Killing processes: $pids”

终止所有进程

#sudo kill -9 $pids
else
echo “No processes are using /mnt/share”
fi

强制取消挂载

sudo umount -f /mnt/share

检查取消挂载是否成功

status=$?

if [ $status -eq 0 ]; then
echo “/mnt/share is a mount point,Failed to unmount /mnt/share”
else
echo “/mnt/share successfully unmounted”
fi



# FAQ
---
## 忘记了 Samba 账户密码


1.列出 Samba 用户:使用命令 `sudo pdbedit -L` 列出所有 Samba 用户。
2. 重置密码:使用命令 `sudo smbpasswd -a`用户名`,然后按照提示输入新密码。

---
## 映射连接失败
1. 查看smb服务是否正常

sudo systemctl status smbd

如果显示`Loaded: Loaded(smbd.service;disabled;vendor preset: enabled)`,smbd 服务则是禁用状态。可以尝试启用并启动 smbd 服务

sudo systemctl enable smbd
sudo systemctl start smbd

再次查看smb服务是否正常

2. windows `控制面板 程序 启用关闭Windows功能 `中 选中SMB选项

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐