Linux 配置Samba,Windows登录,开机自动映射登录

Linux 配置Samba,Windows登录,开机自动登录

以下脚本均经过个人验证。

一、Linux 侧:安装 Samba

1️⃣ 安装(Ubuntu / Debian 系)

bash 复制代码
sudo apt update
sudo apt install -y samba

安装完成后会有两个核心服务:

  • smbd:文件共享
  • nmbd:NetBIOS(名字发现,可选)

确认服务状态:

bash 复制代码
systemctl status smbd

二、准备共享目录

1️⃣ 创建目录

bash 复制代码
sudo mkdir -p /srv/samba/share

2️⃣ 设置权限(示例:给某个用户)

假设 Linux 用户是 yourusername(你可以换成实际用户名):

bash 复制代码
sudo chown -R yourusername:yourusername /srv/samba/share
chmod 755 /srv/samba/share

⚠️ 不建议直接 777,除非只是临时测试


三、配置 Samba

1️⃣ 备份原配置

bash 复制代码
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

2️⃣ 编辑配置文件

bash 复制代码
sudo vim /etc/samba/smb.conf
(1)全局配置(通常已经有)

确认或修改以下内容:

ini 复制代码
[global]
   workgroup = WORKGROUP
   security = user
   map to guest = bad user
  • WORKGROUP 要和 Windows 一致(默认就是这个)
  • security = user 是最常用模式

(2)添加共享配置

在文件末尾添加:

ini 复制代码
[share]
   comment = Samba Share
   path = /srv/samba/share
   browseable = yes
   writable = yes
   valid users = yourusername
   create mask = 0644
   directory mask = 0755

四、Samba 用户配置(⚠️非常关键)

Samba 用户 ≠ Linux 用户,需要单独设置

1️⃣ 确认 Linux 用户存在

bash 复制代码
id yourusername

没有的话创建:

bash 复制代码
sudo useradd -m yourusername
sudo passwd yourusername

2️⃣ 添加 Samba 用户

bash 复制代码
sudo smbpasswd -a yourusername

按提示输入密码(Windows 登录时用这个密码

启用用户:

bash 复制代码
sudo smbpasswd -e yourusername

五、重启服务并放行防火墙

1️⃣ 重启 Samba

bash 复制代码
sudo systemctl restart smbd nmbd

2️⃣ 防火墙(如果启用了 UFW)

bash 复制代码
sudo ufw allow samba
sudo ufw reload

六、Windows 侧访问 Samba

方法一:资源管理器(最常用)

在 Windows 文件管理器地址栏输入:

复制代码
\\<Linux_IP>\share

例如:

复制代码
\\192.168.1.100\share

方法二:映射网络驱动器(推荐)

  1. 打开 此电脑

  2. 右键 → 映射网络驱动器

  3. 文件夹填写:

    复制代码
    \\192.168.1.100\share
  4. 勾选 使用其他凭据连接

  5. 用户名输入:

    复制代码
    yourusername
  6. 密码:smbpasswd 设置的密码


七、常见问题 & 排查(工程常用)

1️⃣ Windows 提示"无访问权限"

  • 确认 Samba 用户存在:

    bash 复制代码
    pdbedit -L
  • 检查 valid users

  • 检查目录 Linux 权限:

    bash 复制代码
    ls -ld /srv/samba/share

2️⃣ Windows 能看到但进不去

多半是 Linux 文件系统权限问题

bash 复制代码
sudo -u yourusername touch /srv/samba/share/test

失败说明不是 Samba 问题,是 Linux 权限问题。


3️⃣ Windows 10 / 11 连接失败(协议问题)

查看 Samba 版本:

bash 复制代码
smbd --version

如遇老系统,可在 [global] 中指定:

ini 复制代码
server min protocol = SMB2

4️⃣ 查看 Samba 日志(非常重要)

bash 复制代码
journalctl -u smbd -f

或:

bash 复制代码
ls /var/log/samba/

八、最小可用配置总结(TL;DR)

Linux:

bash 复制代码
apt install samba
mkdir /srv/samba/share
smbpasswd -a yourusername

smb.conf

ini 复制代码
[share]
path = /srv/samba/share
writable = yes
valid users = yourusername

Windows:

复制代码
\\Linux_IP\share

九、配置自动登录

✅ 方案一:用 Windows「映射网络驱动器 + 记住凭据」

这是最标准、最稳的方式。

操作步骤
  1. 打开 此电脑

  2. 右键 → 映射网络驱动器

  3. 选择盘符(例如 Z:

  4. 文件夹填:

    复制代码
    \\ipaddress\share

    或:

    复制代码
    \\<WSL_IP>\share
  5. ✅ 勾选:

    • 登录时重新连接
    • 使用其他凭据连接
  6. 点击完成

  7. 输入:

    • 用户名:yourusername
    • 密码:Samba 密码
    • 勾选 记住我的凭据

👉 这样 Windows 会:

  • 开机自动尝试 reconnect
  • 凭据保存在 凭据管理器

如果你想"强制 100% 自动挂载"(工程级)

有些情况下(WSL 启动慢、网络慢),GUI 自动映射会失败。

✅ 方案二:登录脚本 + net use

1️⃣ 创建脚本

例如:C:\scripts\map_samba.cmd

内容:

bat 复制代码
@echo off
net use Z: \\ipaddress\share /user:yourusername <Samba密码> /persistent:yes

⚠️ 密码明文,不适合多人环境

单人开发机 OK


2️⃣ 加到开机启动
  • Win + R

  • 输入:

    复制代码
    shell:startup
  • map_samba.cmd 放进去

👉 每次登录都会强制重新映射


推荐的"更安全版本"(不写明文密码)

凭据管理器 + net use

1️⃣ 先存凭据
powershell 复制代码
cmdkey /add:ipaddress /user:yourusername /pass

输入密码(只输入一次)


2️⃣ 脚本里不写密码
bat 复制代码
net use Z: \\ipaddress\share /persistent:yes

WSL 场景下的"稳定性建议"(非常重要)

⚠️ 确保 WSL 在映射前启动

如果你发现 开机后第一次访问失败,可以:

方法 A(推荐)

在启动脚本前加一句:

bat 复制代码
wsl.exe -d Ubuntu -e true

完整示例:

bat 复制代码
@echo off
wsl.exe -d Ubuntu -e true
net use Z: \\ipaddress\share /persistent:yes
相关推荐
2301_7779983412 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
yunwei3712 小时前
eBPF 教程:检查 exec 后真正安装的可执行镜像
linux·开源
emfuture12 小时前
工业自动化现场四大典型故障复盘:从环境适配到边缘智能的工程实践
运维·网络·自动化
笑锝没心没肺12 小时前
yum update 报错:GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found
linux·运维·服务器
love530love13 小时前
【排障实录】GPT Desktop (Codex) 开启 WSL 智能体模式后无法启动?手把手教你修复
人工智能·windows·gpt·agent
WangWei_CM13 小时前
Session Manager 的 BootExecute、SetupExecute 与 Execute 多字符串解析
windows
keke.shengfengpolang13 小时前
自动化专业毕业能干什么?制造业、控制、软件、数据怎么选,2026版大实话
运维·自动化
AAA@峥13 小时前
CentOS Stream8 基于 Packstack 搭建 OpenStack 云平台全流程实战
linux·centos·openstack
汤永红13 小时前
gtk-x11-2.0.so.0
linux·运维·服务器
公众号:fuwuqiBMC13 小时前
(转自“服务器BMC”)服务器BMC芯片功能——网口
运维·服务器