-
2021-05-11 23:20:53
SMB
SMB(Server Message Block,信息服务块)是用于在局域网共享文件和打印机的一种通信协议。
Samba
Samba则是实现SMB协议的软件。
安装Samba
Ubuntu环境
sudo apt-get update(更新apt-get)
sudo apt-get install samba(安装samba)
主配置文件smb.conf
路径位于/etc/samba/目录下
sudo vim /etc/samba/smb.conf(编辑smb.conf文件)
smb.conf配置如下:
#全局设置
[global]
#workgroup/NT-domain,工作组/NT域名)
workgroup = WORKGROUP
#描述
server string = %h server (Samba,Ubuntu)
#禁止nmbd通过DNS搜索NetBIOS名称
dns proxy = no
#网络设置
#这块我还没弄明白,后面再补上
#Debug
#log.smbd和log.nmbd日志路径
log file = /var/log/samba/log.%m
#日志容量(单位为KB)
max log size = 1000
#通过syslog写日志(若设置则日志谢总syslog,而非log.smbd和log.nmbd)
#syslog only = yes
#若使用syslog则设置更高一点,如syslog = 1000
syslog = 0
#回溯,panic-action是一个脚本,有兴趣的打开看看
panic action = /usr/share/samba/panic-action %d
#验证
#服务器模式(数种不同的模式)
server role = standalone server
#加密密码类型
passdb bakend = tdbsam
obey pam restrictions = yes
#同步unix密码
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = Enter\snew\s\spassword:* %n\n Retype\snew\s\spassword:* %n\n password\supdated\ssuccessfully .
pam password change = yes
#连接失败
map to guest = bad user
#Domain
#若使用primary classic domain controller,backup domain controller,
domain logons则需要配置
#Misc
usershare allow guests = yes
#Share Definitions
#默认的打印机服务,不用可以注释掉
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
#共享配置
[samba]
#描述
comment = share folder
#浏览权限
browseable = yes
#共享文件夹
path = /home/lky/samba
#权限
create mask=0777
directory mask=0777
force user=lky
force group=lky
public=yes
writeable=yes
available=yes
更多相关内容 -
smb配置文件,通用
2018-09-29 16:16:52ubuntu环境下的samba跟windows共享的配置文件,新的开发环境下,直接替换,修改共享目录,之后保存,重启samba之后生效 -
Linux SMB服务器配置
2021-11-20 18:34:13修改配置文件 用户认证 验证smb服务 注意事项 结语 简介 smb服务器可以用于服务器之间进行文件共享,linux之间文件共享可以使用scp命令,但是linux和windows之间互传文件,往往比较麻烦,这时就可以用上samba...目录
简介
smb服务器可以用于服务器之间进行文件共享,linux之间文件共享可以使用scp命令,但是linux和windows之间互传文件,往往比较麻烦,这时就可以用上samba服务进行文件传输了。
环境:centos7
安装
首先检查linux上samba软件包及其组件是否安装。
rpm -qa | grep samba
没有安装的话使用"yum"命令进行安装即可。
yum -y install samba //默认即可
启动服务
service smb start
systemctl start smb.service
设置开机自启动
chkconfig smb on
systemctl enable smb.service
修改配置文件
编辑主配置文件
vi /etc/samba/smb.conf
[homes]
comment = share Directories
path=/public //配置smb的共享目录,不存在需要创建
valid users =smbuser //允许访问的用户
browseable = Yes //文件可以浏览
read only = yes //共享文件可读
用户认证
给smb增加一个文件共享的认证用户,也可以使用系统中存在的用户
# useradd smbuser
然后使用"smbpasswd"命令添加共享用户的认证密码
# smbpasswd -a smbuser
然后重启smb服务使配置生效
systemctl restart smb.service
验证smb服务
在共享目录里创建或者放入任意文件,然后在windows机器上进行访问。
在windows上使用"win+r"方式,输入\\ip地址,回车 (也可以直接在文件管理中输入\\ip)
提示输入用户密码进行认证
输入\\ip地址,回车输入用户密码进行认证
验证成功后可以正常访问到刚才在共享目录创建的文件了。
注意事项
Samba的安装和配置都是一步一步来的,没有什么问题。但是很多情况下,就是最后在Windows的运行中,输入了\\IP地址之后,没有任何反应,可以尝试关闭防火墙,检测网络连通性。
结语
已无暇顾及过去,要向前走。
-
关于linux系统下samba文件夹映射配置文件smb.conf
2019-12-06 11:04:50关于samba的相关配置,可以直接拷贝smb.conf,修改下面的文件路径,如有问题请参考我的博客https://blog.csdn.net/weixin_39559301/article/details/103418091,配置是一样的 -
修改Windows SMB相关服务的默认端口
2021-08-12 10:24:01Windows NT系列操作系统的NetBT(NetBios Over Tcpip)服务,是用来处理SMB(Server Message Block)相关的服务/客户操作的。NetBT服务对应的驱动程序文件是netbt.sys,对应的注册表项是:HKEY_LOCAL_MACHINE\SYSTEM\...Windows NT系列操作系统的NetBT(NetBios Over Tcpip)服务,是用来处理SMB(Server Message Block)相关的服务/客户操作的。
NetBT服务对应的驱动程序文件是netbt.sys,对应的注册表项是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT。微软的KB 120642和KB 314053分别描述了Windows NT、Windows 2000、Windows XP上该键值的部分可选参数。
NetBT服务对应的在Windows NT 4.0上对应的端口是:
NameservicePort 137/UDP
DatagramPort 138/UDP
SessionPort 139/TCP
从Windows 2000开始,微软引入了SMB Direct Over TCP的445端口。上述的137、138、139 端口虽然被保留,并可正常工作,但是默认情况下,系统总是会使用445端口进行SMB会话,仅在445端口工作失败的情形下,才会使用139端口作为SessionPort。445端口默认情况下是始终开放的。如果要关闭该端口,可以参考微软KB 301673中的方法,在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters中增加一个值:
Value Name: SmbDeviceEnabled
Type: REG_DWORD
Value Data: 0
然后重新启动系统。
顺便提一下,如果要关闭139端口,可以参考微软的KB 299977:
1、 单击开始,指向设置,然后单击和拨号连接。
2、 单击您希望静态配置的本地连接,单击文件菜单中的属性。
3、 单击 Internet 协议 (TCP/IP),单击属性,单击高级,然后单击 WINS 选项卡。
4、 单击禁用 TCP/IP 上的 NetBIOS。
5、 单击确定,单击确定,再次单击确定。
修改会立即生效,不必重新启动系统。
这个445 端口可不可以改成别的值呢?分析netbt.sys可知,服务初始化的时候,函数NbtReadRegistry分别调用ReadParameters和ReadSmbDeviceInfo从注册表中获取NetBT服务的配置:
; ------------------------------------------------------------------------
push [ebp+Handle]
push offset _NbtConfig
call _ReadParameters@8 ; ReadParameters(x,x)
push [ebp+KeyHandle]
call _ReadSmbDeviceInfo@4 ; ReadSmbDeviceInfo(x)
; ------------------------------------------------------------------------
ReadParameters读取的注册表值就在上面提到的三篇KB中基本都有相关说明,但是ReadSmbDeviceInfo 所获取的信息,似乎还没有现成的文档描述。下面是逆向工程出来的5.0.2195.6783版本netbt.sys的ReadSmbDeviceInfo函数:
; ------------------------------------------------------------------------
; __stdcall ReadSmbDeviceInfo(KeyHandle)
KeyHandle = dword ptr 8
push ebp
mov ebp, esp
lea eax, [ebp+KeyHandle]
push esi
push eax ; KeyHandle
push offset aParametersSmb ; "Parameters\Smb"
push [ebp+KeyHandle] ; int
call _NbtOpenRegistry@12 ; NbtOpenRegistry(x,x,x)
mov esi, eax
test esi, esi
jl short SetDefaultPort ;如果键不存在则转向去设置默认值
push 1
push 1BDh ; 默认值445
push offset aSessionport ; "SessionPort"
push [ebp+KeyHandle]
call _NbtReadSingleParameter@16 ; NbtReadSingleParameter(x,x,x,x)
push 1
push 1BDh ; 默认值445
push offset aDatagramport ; "DatagramPort"
mov word_2BA88, ax
push [ebp+KeyHandle]
call _NbtReadSingleParameter@16 ; NbtReadSingleParameter(x,x,x,x)
push [ebp+KeyHandle] ; Handle
mov word_2BA8A, ax
call ds:__imp__ZwClose@4 ; __declspec(dllimport) ZwClose(x)
jmp short Return
SetDefaultPort:
mov SessionPort, 1BDh ;设置SessionPort为445
mov DatagramPort, 1BDh ;设置DatagramPort为445
Return:
mov eax, esi
pop esi
pop ebp
retn 4
; ------------------------------------------------------------------------
显然,ReadSmbDeviceInfo会先试图打开HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\Smb然后分别读取SessionPort 和DatagramPort,根据其中的值来设置相关端口。如果打开键失败,则转向 SetDefaultPort,将两个端口设置为默认的445,如果读取值失败,NbtReadSingleParameter的第三型参也指定了默认的返回值445。
SessionPort 和DatagramPort分别对应TCP和UDP的端口。不过我从来没有见到过UDP的SMB会话,所以,还是SessionPort更加重要一些。
然后NbtCreateAddressObjects根据这些信息,来打开端口,创建服务:
; ------------------------------------------------------------------------
mov eax, [ebp+var_8]
mov cx, SessionPort ; tcp端口值
mov esi, offset aSmbserver ; "*SMBSERVER "
mov [eax+1F2h], cx
mov eax, [ebp+var_8]
mov cx, DatagramPort ; udp端口值
mov [eax+1F6h], cx
mov eax, [ebp+var_8]
mov [eax+1F4h], di
mov eax, [ebp+var_8]
lea edi, [eax+1F8h]
movsd
movsd
movsd
movsd
push [ebp+var_8]
push 0
push 7F000001h
call _NbtCreateAddressObjects@12 ; NbtCreateAddressObjects(x,x,x)
; ------------------------------------------------------------------------
明确了流程,方法也就出来了。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters\Smb这个项默认情况下是没有的,所以程序总是会转向SetDefaultPort,如果我们手工创建Smb 项和下面的两个值,系统就会按照我们创建的值来设定端口。这是最简单的办法。当然,如果你愿意,手工修改netbt.sys 也是可以的。下面是一个把端口设定为555的注册表例子:
; ------------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Smb]
"SessionPort"=dword:0000022b
"DatagramPort"=dword:0000022b
; ------------------------------------------------------------------------
上面提到的修改,会同时影响服务器和客户端。也就是说,如果我们把端口改为555,那么不但本机的SMB Direct Over TCP会监听555端口,访问其他机器的SMB服务时也会尝试往555 端口连接。也就是说,假使我们将两台计算机做同样的修改,那么这两台计算机之间可以正常互访共享,但是其它计算机则不能访问它们。
修改这个端口有什么用处呢?
1、 研究中有时候需要使用本机的445端口,例如做一些SMB会话劫持的试验。
2、 如果希望通过阻塞了445、139等端口的防火墙来访问网络共享,可以将服务器和客户端的SessionPort都设为80,这样,两者之间就会通过80端口进行SMB会话。而且,一般来说,这种修改并不会影响对其他正常服务器的访问,因为对80建立连接失败后,客户端会自动转用139端口。
3、 如果我们按照一开始提到的方法,禁用139 端口,并且将一个网络内所有的系统都修改为一个共同的值,那么这些机器相互之间的共享访问仍然不受任何影响,但是任何外来的访问都会失败。这在某种程度上可以增强性,抵御恶意入侵和一些蠕虫。
139 端口可不可以改为其它的呢?也是可以的,不过,没有像上面那样优雅的方法,只能靠修改netbt.sys文件或者动态修改内存中相应的位置。5.0.2195.6783版本netbt.sys设定端口部分的代码如下:
; ------------------------------------------------------------------------
66 C7 86 F2 01 00 00 8B 00 mov word ptr [esi+1F2h], 8Bh ; 139
66 C7 86 F4 01 00 00 89 00 mov word ptr [esi+1F4h], 89h ; 137
66 C7 86 F6 01 00 00 8A 00 mov word ptr [esi+1F6h], 8Ah ; 138
; ------------------------------------------------------------------------
-
ubuntu 16.04 samba文件共享,修改配置文件,重启samba服务使生效
2021-05-13 13:44:25以前在ubuntu 14.04的时候,很方便的通过几行命令和一个GUI界面就可以配置好samba共享文件给windows了:Ubuntu 14.04sudo apt-get install smbclient samba-common-bin system-config-sambasystem-config-samba # ...以前在ubuntu 14.04的时候,很方便的通过几行命令和一个GUI界面就可以配置好samba共享文件给windows了:
Ubuntu 14.04
sudo apt-get install smbclient samba-common-bin system-config-samba
system-config-samba # 打开一个GUI界面进行配置,很简单的。可是呢,到了ubuntu 16.04 之后,就变得不是那么简单的了;
使用两样的命令,GUI界面会报错的;
root@Asgard:~# system-config-samba
Traceback (most recent call last):
File "/usr/sbin/system-config-samba", line 45, in
mainWindow.MainWindow(debug_flag)
File "/usr/share/system-config-samba/mainWindow.py", line 121, in __init__
self.basic_preferences_win = basicPreferencesWin.BasicPreferencesWin(self, self.xml, self.samba_data, self.samba_backend, self.main_window)
File "/usr/share/system-config-samba/basicPreferencesWin.py", line 97, in __init__
self.admin = libuser.admin()
SystemError: could not open configuration file `/etc/libuser.conf': No such file or directory
暂时不深究它怎么解决这个问题错误,出现这个错误时弹出了Bug反馈,就点了一下发送~~,仅此而已;
现在呢,一是等待官方解决问题,二是自己还可以通过修改配置文件的形式配置samba;
在此之前,得需要生成samba用户名和密码,以区别你的系统用户名、密码;
生成samba用户名密码
cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd
smbpasswd -a scue # 输入密码,最好与登录名密码不同
修改配置文件
配置文件在/etc/samba/smb.conf,我在后边添加了一段信息:
# scue home directory
[scue]
workgroup = scue
security = scue
netbios name = scue
comment = scue home
path = /home/scue
browsable = yes
writeable = yes
read only = no
这个的意思是,共享目录 /home/scue,可读可写,用户名是scue,基本信息也是最重要的信息是这些,其他的可以自己领悟;
重启samba服务使之生效
一般情况下,我们会使用
sudo service samba restart
可是呢,竟然提示
Failed to start samba.service: Unit samba.service is masked.
后来想起来,16.04的服务是使用systemd进行管理了,查了一下相关的资料,发现重启服务的命令如下:
sudo systemctl restart smbd.service
OK,一切都搞定了,看熟悉的界面又出来了。
-
linux下smb文件共享服务器详解
2021-05-12 12:08:37linux下smb文件共享服务器详解1.smb服务器,netbios工作端口137/udp,138/udp,139/tcp,共享文件工作端口445/tcp2.smb服务器主要是运行在linux与windows之间的文件共享服务,安全级别有user,share,server,domain四种user... -
K3C 开启samba 的配置文件
2020-12-03 14:51:36K3C 虽然支持usb网络存储,...修改了smaba配置,让其他设备可以自动搜到SMB。只需按照文中将K3C路由器的telnet开启,然后通过wincap将修改好的smb.conf拷贝到etc/samba/这个目录下替换旧的smb.conf 从新启动就可以了 -
Linux下配置smb服务
2021-05-14 21:17:23查看配置文件vim /etc/samba/smb.conf3.安全级别安全级别: share 共享级别(不需要密码)user 用户级别(添加samba用户设置samba密码)server 单独服务器解析4.修改配置文件[htdocs]comment = project 文件夹注释path = ... -
samba服务器配置文件smb.conf详解
2017-11-14 14:05:00配置文件详解 Samba配置文件非常简介明了,所有的设置都在/etc/samba/smb.conf配置文件中进行,通过对该配置文件的修改我们可以将Samba配置为一台匿名文件服务器、基于账户的文件服务器或打印服务器,默认Samba会... -
Samba文件服务器共享配置
2021-11-30 19:27:21建立public文件, 只有@admin组和admin、job用户可以进行读写,其余用户均不可以访问。要求:admin用户不能删除job用户创建的文件,反之亦然。 建立hr共享文件,要求用户名和密码验证访问,只有@hr组和hr1,job的... -
centos下smb配置
2021-05-12 13:15:071,系统安装时安装samba2,useradd -d /home/pub/ -m pub创建一个系统用户,设置密码为public3,创建共享目录/home/pub/doc/4,修改smb配置文件/etc/samba/smb.conf:(1)注释掉[homes]部分(2)在文件尾部增加下列行:... -
linux-smb-文件权限配置-超详细
2011-01-13 16:23:25linux-smb-文件权限配置-超详细 -
如何利用samba(smb服务)实现网络文件共享
2020-07-17 12:06:31文章目录samba前言实验环境利用samba搭建共享文件系统详细步骤 samba 前言 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及...SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件 -
smb服务配置
2019-05-30 22:17:33Samba服务可用于将Linux文件系统作为CIFS/SMB网络文件共享进行共享,并将Linux打印机作为CIFS/SMB打印机共享进行共享。 实验一、windows共享文件给linux 1、实验环境 1)、windows系统172.25.254... -
testparm - 检查smb.conf配置文件的内部正确性
2019-06-28 10:44:00总览 testparm [-s] [-h] [-L servername] [configfilename] [hostname hostIP] 描述 此程序是samba套件的一部分。 ...testparm是个非常简单的程序,用于检查smbd配置文件的内部...注意,这并不保证配置文件中指... -
Linux下smb的配置
2018-04-18 08:33:55linux下smbsmbclient用法1,列出某个IP地址所提供的共享文件夹smbclient -L 198.168.0.1 -U username%password2,像FTP客户端一样使用smbclientsmbclient //192.168.0.1/tmp -U username%password执行smbclient命令... -
Linux 启动smb服务器,windows连接smb 服务器
2021-11-09 15:10:12在centos中启动smb服务器,在windows10中连接smb服务器 ...2.2 修改配置文件 然后在/etc/samba/smb.conf里面插入以下一段代码: [share] # share为文件夹名字 comment=Temporary file space path=/ -
Linux Samba文件共享服务配置
2020-07-14 00:30:54一、软件准备 RHEL4系统中默认安装了samba服务器和客户机的所有软件包。通过以下命令来确认是否已存在软件包。...二、Samba服务的安装和配置 1、 Samba安装 安装命令为: # rpm –ivh 软.. -
samba服务器配置文件
2017-11-01 06:35:00修改配置文件,实战举例: 一、samba常规服务器配置(配置文件路径:/etc/samba/smb.conf) 基本的samba服务器的他见流程主要分为四个步骤: (1)、编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享... -
Windows Server 2016 搭建 SMB 共享文件
2021-08-10 09:43:25在建立共享文件前需要先规划好权限问题,下面的示例权限规划:先建立一个共享文件:权限所有用户都可以访问,不给修改权限;在共享文件下建立部门文件:权限所有用户都可以访问IT部和管理部,不给修改权限;分别在IT... -
samba修改smb.conf后,不需要重启服务,就可生效
2019-01-08 15:58:00猜测可能的原因:samba是在客户端进行连接时,smb服务程序读取smb.conf配置文件信息来进行判断的。所以不存在如何让配置文件生效的问题。 理论依据待补充。 转载于:... -
Windows7系统怎么启用smb服务
2020-12-29 20:54:31smb服务是协议名,它能被用于Wap连接和客户端与服务器之间的信息沟通,可以让手机访问电脑硬盘中的视频文件,但是有些windows7系统用户并不知道要怎么启用smb服务,现在随小编一起来看看启用smb服务的方法如下。... -
9-在系统中配置文件共享(SMB/Samba)多用户服务与客户端挂载
2018-05-26 20:31:321.服务器:在系统中创建2个系统测试用户,创建2个SMB测试用户。2.服务器:创建共享目录,修改共享目录上下文安全管理权限,重新载入安全上下文管理权限,查看共享目录安全上下文权限。3.服务器:... -
samba(smb服务)实现网络文件共享
2020-11-01 14:19:59重启服务 每当配置文件被修改后,一定要记得重启你的配置文件。 systemctl restart smb systemctl restart nmb netstat -anptugrep mbd 7.客户机权限的验证 微软∶//samba 服务器ip linux∶smbclient //samba服务器... -
samba配置文件smb.conf
2017-03-01 12:27:40例如在windows上共享文件的话,只需右击要共享的文件夹然后选择...samba配置文件smb.conf 安装系统的时候大多会默认安装samba,如果没有安装,在CentOS上只需要运行这个命令安装即可: # yum install -y samba samba