smb服务

本文介绍了Samba服务,它基于NetBIOS over TCP/IP,允许Linux与Windows系统共享资源。Samba的功能包括共享磁盘和打印机。主要服务nmbd和smbd分别管理NetBIOS名称解析和共享目录。Samba的安装涉及配置文件`smb.conf`,安全级别可设置为user、server或domain。文章还详细讲解了如何搭建Samba服务器,包括安装、配置、安全设置和权限管理,以及如何从Windows客户端访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

samba服务的介绍

samba是架构在NetBIOS(Network Basic Input/Output System,网上基本输入输出系统)这个通信协议上面所开发出来的。NetBIOS是由IBM发展出来,目的是要让局域网络内少数计算机进行网络连接的一个通信协议,因此NetBIOS是无法跨越路由的,而现在Samba不仅能与局域网主机分享资源,还能与全世界的电脑分享资源,就是由NetBIOS over TCP/IP技术解决。由于NetBIOS在局域网内实在是很好用,所以微软的网络架构就使用了这个协议。而samba最早发展的时候,其实是想要让linux系统可以加入windows的系统当中来共享使用彼此的文件数据,所以samba就架构在NetBIOS发展出来了。

samba的功能:

①共享linux磁盘给win95/NT

②共享win95/NT磁盘给linux机器

③共享linux打印机给win95/NT

④共享win95/NT打印机给linux机器

使用端口:现在使用的是445

port 137(udp)

port 138 (udp)

port 139 (tcp)

port 445 (tcp)

samba通过两个服务来控制管理工作组和samba主机共享的目录,分别是:
nmbd:这个服务是来管理工作组、NetBIOS Name等的解析。主要利用UDP协议开启port137、port138来负责名称解析的任务。

smbd:这个服务的主要功能是用来管理samba主机共享的目录、文件与打印机等。主要利用可靠的TCP协议来传输数据,开放的端口为139和445(不一定存在)。

samba服务的相关软件包说明

samba:该软件主要提供了smb服务器所需的各项服务程序(smbd及nmbd)、相关的文件。

samba-client:这个软件提供了当linux作为samba client时,所需要的工具命令。例如挂载samba文件格式的mount.cifs。

samba-common:这个软件提供的则是服务器与客户端都会使用到的数据,包括samba的主要配置文件(smb.conf)等。

SAMBA服务器的搭建

samba服务的主配置文件:/etc/samba/smb.conf

在该文件中,“#”和“;”都是注释符号。

在该文件中,不区分大小写。

安装过程:

使用yum安装

# yum install samba -y

 关闭防火墙、selinux

起服务

# systemctl stop firewalld
# setenforce 0
# systemctl start smb nmb

目前就可以使用默认的配置来进行文件的传输了。

客户端:Windows主机

服务端:linux虚拟机

windows下指定smb服务使用\\192.168.83.133(使用自己的虚拟机主机的ip)

需要等一下才会弹出对话框

 

 查看配置文件:

# vim /etc/samba/smb.conf

查看示例文件:

# vim /etc/samba/smb.conf.example 

分析示例文件中的内容:

[global]

  • workgroup = MYGROUP    定义该Samba服务器所在的工作组或者域(如下面的security = domain

  • server string = Samba Server Version %v

        设定机器的描述。当我们通过网络邻居访问的时候可以在备注里面看到这个内容,而且还可以使用%v = samba服务的版本号

  • log file = /var/log/samba/log.%m 定义记录文件的位置LogFileName
  • max log size = 50   定义记录文件的大小(单位是KB,如果是0的话就不限制大小)
  • security = user 

        定义samba的安全级别,按照从低到高可分为四级:share,user,server,domain

        验证方式:

                share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源

                user:samba的默认配置,要求用户在访问共享资源之前必须先提供用户名和木马进行         验证

                server:与user的安全级别类似,但用户名和密码是递交到另一个服务器去验证,比 如         递交到一台NT服务器,如果递交失败,就遇到user安全级别。

                domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名           和密码递交给他去验证

        后面三种安全级别都要求用户在linux虚拟机上也有系统账户,否则是不能访问的。

  • load printers = yes

[homes](共享目录名称)

        在sbm.conf文件中一般没有对这个目录设定特定的内容,比如路径等,当客户机发出服务请求时,就在smb.conf文件的其他部分查找有特定的内容的服务,如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,samba可以得到用户的Home目录并使之共享。

        Home段最基本的几个设置:

        comment = Home Directories           家目录信息(注释信息)
        browseable = no                               浏览开启/不开启(当前是不开启)
        writable = yes                                   读写权限        只读用readonly = yes
;       valid users = %S                               
;       valid users = MYDOMAIN\%S

[printers]       共享打印机

        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes            打印权限

browseable=可浏览(设置共享是否可浏览,如果是no表示隐藏,通过ip+共享名进行访问)
writable=yes 可写,还要看目录权限,rw
write list = xixi,@GROUPNAME,+GROUPNAME
read only = yes   只读设置        ro
create mask =0644 客户拒创建文件权限
directory mask = 0755 客户机创建目录的权限
balid user = // 允许
invalid = user,use人,@group1//禁止登录用户,用户用逗号隔开,组用@隔开 //禁止
访问控制
hosts allow = 允许主机192.168.83.133.           把主机位省略但是要加.
hosts deny = 拒绝主机,允许优先
max connections = 最大连接数目
deadtime = 断掉连接时间(分钟,0位不限制)
public=所有用户都可以访问   /  guest OK=yes/no
map to guest = Bad User   匿名访问

测试一:Windows作为客户端

# vim /etc/samba/smb.conf

先对配置文件进行修改

 最后只要这几条参数即可

修改完成之后重启服务(这里特殊注意一下,启动的是两个服务:smb和nmb)

# systemctl restart smb nmb

启动这里前提是要把防火墙和selinux提前给关闭,要不然会报一个0x80070035的错误,这个可能是因为防火墙和selinux没关导致的,关闭防火墙和selinux之后再重启就不会报错了。

 会出现下面这个情况,是因为没有创建smb用户和设置密码

 添加一个smb用户

首先先添加一个本地用户,先查看是否有本地用户,没有则添加一个

[root@bogon ~]# id haha
id: “haha”:无此用户
[root@bogon ~]# useradd haha

有了本地用户,在创建smb用户(注:这里密码不会显示),这里我创建两个用户”haha和xixi“

[root@bogon ~]# smbpasswd -a haha
New SMB password:
Retype new SMB password:
Added user haha.


[root@bogon ~]# useradd xixi
[root@bogon ~]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.

“成功添加hahasmb用户

查看是否创建成功,查询smb用户的指令:

[root@bogon ~]# pdbedit -L
haha:1001:
xixi:1002:

查到了两个smb用户:haha和xixi

 点击确定就会看到haha这个家目录文件

[homes]是指家目录的名称,在这里是指haha用户的家目录

 

配置文件当中browseable = NO是指当前用户可以看到自己的家目录,但是别人并不能看到

 里面什么也没有,但是从Windows上可以上传文件和删除

 上传成功

对上传的文件也有写的操作

 进行删除,删除成功

这个是默认的配置文件,接下来自定义共享信息

FTP是不可以做自定义共享目录,只能使用默认路径来共享信息,但是smb可以做自定义

修改配置文件:

添加一个test目录

 根据写的配置文件创建/test目录

# mkdir /test
# touch /test/{1..10}


重启服务:
# systemctl restart smb nmb

刷新之后还是看不到test目录。是因为browseable = NO,这里将NO改为YES就可看到

 改成yes之后即可看到test

打开test文件,里面的内容只有读取的权限,没有写,以及删除等权限,

 

加上写的权限:两层

①系统文件           write list =haha

在配置文件中加上写的权限

 查看有没有写的权限:

# ll /test -d
drwxr-xr-x. 2 root root 97 11月  3 14:54 /test

发现并没有写的权限

②目录层         # chmod o+w /test

两层都加上之后就可以上传文件了

    

 有了写的权限,则可以正常的删除文件

只能删除自己创建的,不能删除别人创建的,否则会报错: # chmod o+t /test     

也可以只开启这个写的权限:

 

测试二:

让linux主机作为客户端来访问

未完待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值