前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux/centos上如何配置管理samba服务器?

Linux/centos上如何配置管理samba服务器?

原创
作者头像
虫无涯
发布2023-08-21 13:33:28
5960
发布2023-08-21 13:33:28
举报
文章被收录于专栏:全栈测试技术全栈测试技术

1 samba服务相关知识

  • samba服务器可使用户在异构网络操作系统之间进行文件系统共享;
  • samba服务器提供了在Windows环境下共享Linux中用户目录的一个工具;
  • linux中安装samba后,只需在windows中做一些登陆即可访问。

1.1 SMB协议

  • Windows系统采用TCP/IP作为底层协议,发送NetBOIS请求,而在NetBOIS的上层,则采用SMB(server message block)协议作为高级接口,实现windows网络环境中的文件与打印等资源共享;
  • SMB使用NetBOIS的应用程序接口API,端口一般为139,445
  • 为开放协议,允许协议扩展;
  • 大约有65个最上层的作业,每个作业都超过120个函数;
  • CIFS(common Internet File system)是增强版的SMB协议。

1.2 samba工作原理

1.2.1 相关进程

  • samba服务器由smbdnmbd两个守护进程组成,每个进程可单独启动,也可使用/etc/rc.d/init.d/smb启动;

smbd:为windows用户提供文件与打印共享服务; nmbd:进行NetBIOS名解析,把windows SMB请求中信息中的NetBIOS名字映射为Linux中的IP地址。

1.2.2 samba工作流程

在这里插入图片描述
在这里插入图片描述

1.2.3 samba功能

  • 文件和打印机共享;
  • 身份验证和权限设置;
  • 名称解析;
  • 浏览服务。

2 samba服务器安装

2.1 利用光驱安装

以下在centos上操作:

  • linux系统的安装光盘放入光驱,并创建:
代码语言:python
复制
mkdir /mnt/cdrom
  • 将光盘以读写方式挂在到以下目录:
代码语言:python
复制
mount /dev/cdrom /mnt/cdrom
  • 制作yum源文件/etc/yum.repos.d/cdrom.repo:
代码语言:python
复制
[cdrom]
name = cdrom
baseurl = file:///mnt/cdrom
gpgcheck = 0
enabled = 1

2.2 利用光盘映射文件

以下在centos上操作(我使用这个方法):

  • 无光驱的情况下,使用操作系统的映射文件即可;
  • 将映射文件.iso上传到linux上的root下,比如CentOS-7-x86_64-Everything-2003.iso
    在这里插入图片描述
    在这里插入图片描述
  • 新建iso目录,并将映射文件挂在到该目录下:
代码语言:python
复制
mkdir /mnt/iso
mount -o loop /root/CentOS-7-x86_64-Everything-2003.iso /mnt/iso
  • 制作yum文件/etc/yum.repos.d/iso.repo:
代码语言:python
复制
[iso]
name = iso
baseurl = file:///mnt/iso
gpgcheck = 0
enabled = 1
  • 使用以下命名安装即可:
代码语言:python
复制
yum -y install samba
  • 可使用命令查看安装情况:
代码语言:python
复制
rpm -qa | grep samba

3 启动与停止samba服务

  • 启动samba服务:
代码语言:python
复制
systemctl start smb.service
  • 停止samba服务:
代码语言:python
复制
systemctl stop smb.service
  • 重启samba服务:
代码语言:python
复制
systemctl restart smb.service
  • 重载samba服务:
代码语言:python
复制
systemctl reload smb.service
在这里插入图片描述
在这里插入图片描述
  • 开机自启samba服务:
代码语言:python
复制
systemctl enable smb.service
# 查看是否开机自启
systemctl list-unit-files | grep smb
在这里插入图片描述
在这里插入图片描述
  • 取消开机自启samba服务:
代码语言:python
复制
systemctl disable smb.service
  • 查询samba服务状态:
代码语言:python
复制
systemctl status smb.service
在这里插入图片描述
在这里插入图片描述

4 配置samba服务器

4.1 samba主配置文件smb.conf

4.1.1 samba配置简介

  • 配置文件在/etc/samba下:
    在这里插入图片描述
    在这里插入图片描述
  • 配置信息如下:
    在这里插入图片描述
    在这里插入图片描述
  • 说明:

① 开头主要是介绍samba的作用; ② # : 为注释; ③ ;: 格式范例;

4.1.2 全局变量

  • global主要是全局变量;
代码语言:python
复制
[global]
        workgroup = SAMBA # 设置samba的工作组
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
  • 部分字段解析:

字段

方法

说明

workgroup

workgroup=<工作组>

设置samba server的工作组

server string

server string=<说明>

设置samba server的注释

host allow

host allow=<IP>地址

限制允许链接到samba server的机器

security

security=<等级>

设置访问的安全级别

password level

password level=<位数>

密码长度

username level

username level=<位数>

用户名长度

encrypt passwords

encrypt passwords=<yes/no>

设定是否对samba密码加密

smd password file

smd password file=<密码文件>

设定samba密码文件

4.1.3 共享服务

  • 共享部分包含homeprinter、自定义共享名;
  • samba默认开启homeprinter共享;
  • 可自行创建共享目录,格式如下:
代码语言:python
复制
[共享名]
字段 = 设置值
......
  • 字段说明:

字段

说明

comment

注释说明

path

共享资源的完整路径

browseable

设置浏览资源时是否显示共享目录

public

设置是否允许匿名访问

read only

是否以只读方式访问共享资源

writeable

是否允许用户写操作

vaild users

设置指定用户

write list

允许写操作的用户或组

4.2 samba服务的日志和账号

4.2.1 samba的服务日志文件

  • 目录:
代码语言:python
复制
/var/log/samba
  • 通过修改如下文件可设置日志文件的存储路径和容量:
代码语言:python
复制
# smb.conf
log file = /var/log/samba/log.%m
max log size = 50
在这里插入图片描述
在这里插入图片描述

4.2.2 samba服务密码文件

  • 目录:
代码语言:python
复制
/etc/samba/smbpasswd
  • samba中添加账号命令为:
代码语言:python
复制
smbpasswd -a 用户名

5 配置samba客户端

5.1 在linux中测试samba服务器

  • smbclient命令:
代码语言:python
复制
smbclient -L 目标IP地址或主机名 -U 登陆用户名%密码
  • mount命令:
代码语言:python
复制
mount -t cifs //目标IP地址或主机名/共享目录名 挂载点 -o username=用户名,password=密码

5.2 在windows中测试samba服务器

  • 开始-运行,输入linux的共享目录即可;
  • 打开文件浏览器输入linux的共享目录也可以;

6 实际实例

6.1 实例说明

共享文件服务器,文件名为workgroup;目录为/mnt/public;共享名为public;允许所有人反问。

6.2 实现过程

  • 新建目录:
代码语言:python
复制
mkdir /mnt/public
touch /mnt/public/test1.txt /mnt/public/test2.txt 
在这里插入图片描述
在这里插入图片描述
  • 修改smb.conf文件:
代码语言:python
复制
[public]
        comment = Public
        path = /mnt/public
        public = yes
        browseable = yes
        guest ok = yes
在这里插入图片描述
在这里插入图片描述
  • 打开图形界面允许防火墙samba服务通过(应用程序-杂项-防火墙);
  • 设置Selinux设置成Permissive:
代码语言:python
复制
getenforce
setenforce 0
getenforce
在这里插入图片描述
在这里插入图片描述
  • 通过linux访问:
代码语言:python
复制
smbclient //192.168.0.190/public -U root
在这里插入图片描述
在这里插入图片描述
  • root加入加入到samba账户中:
代码语言:python
复制
smbpasswd -a root
在这里插入图片描述
在这里插入图片描述
  • 通过windows访问,如果出现访问不了,需要开启SMB文件共享支持:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 samba服务相关知识
    • 1.1 SMB协议
      • 1.2 samba工作原理
        • 1.2.1 相关进程
        • 1.2.2 samba工作流程
        • 1.2.3 samba功能
    • 2 samba服务器安装
      • 2.1 利用光驱安装
        • 2.2 利用光盘映射文件
        • 3 启动与停止samba服务
        • 4 配置samba服务器
          • 4.1 samba主配置文件smb.conf
            • 4.1.1 samba配置简介
            • 4.1.2 全局变量
            • 4.1.3 共享服务
          • 4.2 samba服务的日志和账号
            • 4.2.1 samba的服务日志文件
            • 4.2.2 samba服务密码文件
        • 5 配置samba客户端
          • 5.1 在linux中测试samba服务器
            • 5.2 在windows中测试samba服务器
            • 6 实际实例
              • 6.1 实例说明
                • 6.2 实现过程
                相关产品与服务
                多因子身份认证
                多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档