Windows访问CentOS搭建的Samba文件共享服务 · OdinXu的博客

您所在的位置:网站首页 windows无法访问虚拟机samba Windows访问CentOS搭建的Samba文件共享服务 · OdinXu的博客

Windows访问CentOS搭建的Samba文件共享服务 · OdinXu的博客

2023-10-22 21:40| 来源: 网络整理| 查看: 265

Windows访问CentOS搭建的Samba文件共享服务 Apr 24, 2020 · 3 min read 关于Samba所有你想知道的都记录在这里了 零、先说明具体环境 Windows 10专业版 1909,18363.778 VMware Workstation Pro 15.5.0 VMware 安装 CentOS 7.7,最小化安装,ip为: 192.168.1.32, hostname: pxecentos7

这里下载 CentOS 7.7 安装包ISO文件,942MB

注意Vmware的虚拟机网络,要选择 【桥接模式】,这样其它机子才能访问到虚拟机。

一、CentOS安装配置Samba服务 yum -y install samba samba-client

修改配置文件

vi /etc/samba/smb.conf

全部内容为:

[global] workgroup = WORKGROUP server string = Samba Server Version %v log file = /var/log/samba/log.%m max log size = 50 map to guest = Bad User passdb backend = tdbsam security = USER guest account = nobody public = Yes dns proxy = No nt acl support = No kernel oplocks = no # hosts allow = 192.168.1.0/255.255.255.0 [data] comment = CentOS Samba Data path = /data read only = No browseable = yes public = yes printable = no guest ok = yes

【注意】上面配置了一个有完整读写权限,并且不需要密码的共享目录 /data ,你应该知道这里的风险。

验证配置文件并启动服务:

testparm systemctl start smb systemctl start nmb 二、安装使用过程中碰到的问题 第1个坑:

如果只启动了 smb,没有启动 nmb,那么Windows可以通过ip地址直接访问Samba,类似这样子 \\192.168.1.32\data 能够成功;但是不能使用主机名字(域名)访问,类似 \\pxecentos7\data 这样访问失败。

  组成Samba运行的有两个服务,一个是smb,另一个是nmb;

  smb 是 Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,只有smb 服务启动,才能实现文件的共享,smb 监听139和445 TCP端口;

  nmb 服务是负责解析用的,类似与DNS实现的功能,可以把Linux系统共享的工作组名称与其IP对应起来,如果nmb服务没有启动,就只能通过IP来访问共享文件,nmb 监听137和138 UDP端口。

可以检查一下CentOS端口使用情况,来确认一下。

yum -y install net-tools netstat -tulpn | grep [sn]mb

应该要有监听 137,138,139,445 总共四个端口。

第2个坑:

Windows上 Win+R 直接 \\192.168.1.32\data 地址访问Samba正常,但是 文件资源管理器 的 【网络】(网上邻居)里面没有显示。

Win10,此电脑,右键,属性,查看计算机的当前工作组。 检查/etc/samba/smb.conf配置文件里面的 workgroup = ,这两项内容必须相同。

如果不相同,修改好 smb.conf 配置后,重启 smb, nmb 两个服务。(或者修改Win10的工作组后重启Windows)

这样改一致后,在Win10的【网络】(网上邻居)里面还是没有显示。原因是:

因安全原因,Win10的1709版本之后默认关闭了 SMB1.0/CIFS文件共享支持,导致linux系统使用Samba软件开启的共享在Win10的【网络】中不能被发现。网上大多数的解决办法是启用Win10的SMB1.0/CIFS文件共享支持,但这个方法只对支持SMB1协议的共享端有效,如共享端强制使用SMB1之上协议,在【网络】中还是发现不了共享主机。

这都 2020 年啦,你确定还要使用 1983 年的 SMB1.0协议吗?三十多年了,不管是从安全,还是从传输速度考虑都不应该用它。

正确的解决方法是使用Web Services Dynamic Discovery服务,现在可以使用github上的wsdd这个python3程序。无需设置Win10即可发现共享主机。

yum -y install unzip wget python3 wget https://github.com/christgau/wsdd/archive/master.zip unzip master.zip cp wsdd-master/src/wsdd.py /usr/bin/wsdd cp wsdd-master/etc/systemd/wsdd.service /lib/systemd/system

设置完成后,启动 systemctl start wsdd

查看状态 systemctl status wsdd

如果启动成功后在Win10的【网络】(网上邻居)中还是没有出现共享的Samba主机,则需要检测是否是CentOS防火墙屏蔽了3702、5357这两个端口。

简单粗暴的先把安全防护都关掉: (你应该知道这里有风险)

systemctl stop firewalld setenforce 0 第3个坑:

访问Samba正常,但是只能读,不能写,不能创建目录。

先确认/etc/samba/smb.conf配置文件内容, 再确认目录权限,试试777:

chmod 777 /data 三、设置开机自动运行Samba服务 systemctl enable smb systemctl enable nmb systemctl enable wsdd

全部搞定,图片看看效果。

四、设置Samba用户名和密码 1. 修改Samba配置文件 vi /etc/samba/smb.conf

增加以下内容

[doc] comment = CentOS Samba Doc (需要用户名密码) path = /doc read only = No browseable = Yes public = No printable = No guest ok = No create mask = 0664 directory mask = 0775

并确保[global]区域中,这两项设置正确

passdb backend = tdbsam security = USER

上面设置使用tdbsam方式来保存Samba的用户名密码。

该方式则是使用一个数据库文件来建立用户数据库。数据库文件默认为 /var/lib/samba/private/passdb.tdb

2. 建立Samba账户

我们可以使用pdbedit命令来建立Samba账户,具体用法如下:

要注意,建立的Samba用户必须首先是Linux系统用户。

  pdbedit -a username :新建Samba账户   pdbedit -x username :删除Samba账户。   pdbedit -L :列出Samba用户列表,读取passdb.tdb数据库文件。   pdbedit -Lv :列出Samba用户列表的详细信息。   pdbedit -c "[D]" -u username :暂停该Samba用户的账号。   pdbedit -c "[]" -u username :恢复该Samba用户的账号。

这里先创建2个Linux系统用户,并设置密码为123456:

groupadd smbgroup adduser -g smbgroup -s /sbin/nologin smbuser1 adduser -g smbgroup -s /sbin/nologin smbuser2 echo 123456 | passwd --stdin smbuser1 echo 123456 | passwd --stdin smbuser2

再用pdbedit创建Samba帐号。

[root@pxecentos7 ~]# pdbedit -a smbuser3 new password: retype new password: Failed to add entry for user smbuser3. [root@pxecentos7 ~]# pdbedit -a smbuser1 new password: retype new password: Unix username: smbuser1 NT username: Account Flags: [U ] User SID: S-1-5-21-0000000000-0000000000-0000000000-1000 Primary Group SID: S-1-5-21-0000000000-0000000000-0000000000-513 Full Name: Home Directory: \\pxecentos7\smbuser1 HomeDir Drive: Logon Script: Profile Path: \\pxecentos7\smbuser1\profile Domain: PXECENTOS7 Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: 三, 06 2月 2036 23:06:39 CST Kickoff time: 三, 06 2月 2036 23:06:39 CST Password last set: 六, 25 4月 2020 00:42:44 CST Password can change: 六, 25 4月 2020 00:42:44 CST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [root@pxecentos7 ~]# pdbedit -L smbuser1:1000:

可以看到我们创建Samba帐号 smbuser3 是失败了。原因是Linux系统没有smbuser3这个用户,而 smbuser1 创建成功了。

要注意这里 重新设置了Samba帐号 smbuser1的密码,这个是访问共享目录要输入的密码,可以跟登录Linux系统的用户密码【不相同】。

3. 设置目录读写权限

现在设置目录读写权限,然后重启Samba服务

chown -R smbuser1:smbgroup /doc/ chmod -R 775 /doc/ systemctl restart smb

然后就可以在Windows上正常访问 \\192.168.1.32\doc ,弹出的输入框里,填入 smbuser1 和刚才设置的密码。

4. Windows下常见问题

这里有个经常会出现的问题,如下图,Windows不允许使用多个用户名连接同一ip的Samba服务。

这时需要Windows清除连接Linux的Samba服务缓存

Windows命令行输入net use ,就会打印出当前的所有远程连接。 根据列表,一个个删除连接: net use 远程连接名称 /del 或者一次性全部删除: net use * /del

删除完之后,就可以正常访问 \\192.168.1.32\doc输入用户密码名啦。

5. 将Windows常用命令建立批处理

建立磁盘映射:

net use Z: \\192.168.1.32\doc 123456 /user:smbuser1 Z: 映射到Windows的哪个磁盘 \\192.168.1.32\doc 远程Samba的目录 123456 Samba用户密码 smbuser1 Samba用户名

删除磁盘映射:

net use * /del /y * 所有映射到windows的磁盘盘符,也可以指定具体的如 Z: Y: /y 如果不加这个,每次都会提示你是否删除磁盘映射

将两行常用命令,建立两个批处理.bat文件,点击即可运行。

6. Windows开机自动建立Samba磁盘映射

【Win+R】打开“运行” —> 输入 gpedit.msc —> 打开组策略 —> 选择“计算机配置” —> 选择“Windows设置” —> 选择“脚本(启动/关机)” —> 选择“启动” —> 点击“添加” —> 选择上一步骤刚创建好的.bat脚本文件。

五、在另一台Linux系统上访问Samba共享目录 yum -y install samba-client cifs-utils smbclient -L //192.168.1.32 -N mount.cifs //192.168.1.32/data /mnt/data mount.cifs -o username="用户名",password="密码" //192.168.1.32/doc /mnt/doc umount /mnt/data 其它相关文章:

CentOS访问Windows10的共享目录

Windows访问CentOS搭建的Samba文件共享服务

Windows访问CentOS搭建的NFS文件共享服务

在VMWARE虚拟机中使用宿主机的共享目录



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3