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

  • Post author:
  • Post category:linux




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

    服务器由

    smbd



    nmbd

    两个守护进程组成,每个进程可单独启动,也可使用

    /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

    系统的安装光盘放入光驱,并创建:
mkdir /mnt/cdrom
  • 将光盘以读写方式挂在到以下目录:
mount /dev/cdrom /mnt/cdrom
  • 制作yum源文件

    /etc/yum.repos.d/cdrom.repo

    :
[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

    目录,并将映射文件挂在到该目录下:

mkdir /mnt/iso
mount -o loop /root/CentOS-7-x86_64-Everything-2003.iso /mnt/iso
  • 制作yum



    文件

    /etc/yum.repos.d/iso.repo

    :
[iso]
name = iso
baseurl = file:///mnt/iso
gpgcheck = 0
enabled = 1
  • 使用以下命名安装即可:
yum -y install samba
  • 可使用命令查看安装情况:
rpm -qa | grep samba



3 启动与停止samba服务

  • 启动

    samba

    服务:
systemctl start smb.service
  • 停止samba服务:
systemctl stop smb.service
  • 重启

    samba

    服务:
systemctl restart smb.service
  • 重载

    samba

    服务:
systemctl reload smb.service

在这里插入图片描述

  • 开机自启

    samba

    服务:
systemctl enable smb.service
# 查看是否开机自启
systemctl list-unit-files | grep smb

在这里插入图片描述

  • 取消开机自启

    samba

    服务:
systemctl disable smb.service
  • 查询

    samba

    服务状态:
systemctl status smb.service

在这里插入图片描述



4 配置samba服务器



4.1 samba主配置文件smb.conf



4.1.1 samba配置简介

  • 配置文件在

    /etc/samba

    下:

    在这里插入图片描述
  • 配置信息如下:

    在这里插入图片描述
  • 说明:

① 开头主要是介绍samba的作用;

② # : 为注释;

③ ;: 格式范例;



4.1.2 全局变量


  • global

    主要是全局变量;
[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 共享服务

  • 共享部分包含[

    home

    ]、[

    printer

    ]、[自定义共享名];

  • samba

    默认开启[

    home

    ]、[

    printer

    ]共享;
  • 可自行创建共享目录,格式如下:
[共享名]
字段 = 设置值
......
  • 字段说明:
字段 说明

comment
注释说明

path
共享资源的完整路径

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

public
设置是否允许匿名访问

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

writeable
是否允许用户写操作

vaild users
设置指定用户

write list
允许写操作的用户或组



4.2 samba服务的日志和账号



4.2.1 samba的服务日志文件

  • 目录:
/var/log/samba
  • 通过修改如下文件可设置日志文件的存储路径和容量:
# smb.conf
log file = /var/log/samba/log.%m
max log size = 50

在这里插入图片描述



4.2.2 samba服务密码文件

  • 目录:
/etc/samba/smbpasswd

  • samba

    中添加账号命令为:
smbpasswd -a 用户名



5 配置samba客户端



5.1 在linux中测试samba服务器


  • smbclient

    命令:
smbclient -L 目标IP地址或主机名 -U 登陆用户名%密码

  • mount

    命令:
mount -t cifs //目标IP地址或主机名/共享目录名 挂载点 -o username=用户名,password=密码



5.2 在windows中测试samba服务器

  • 开始-运行,输入

    linux

    的共享目录即可;
  • 打开文件浏览器输入

    linux

    的共享目录也可以;



6 实际实例



6.1 实例说明

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



6.2 实现过程

  • 新建目录:
mkdir /mnt/public
touch /mnt/public/test1.txt /mnt/public/test2.txt 

在这里插入图片描述

  • 修改

    smb.conf

    文件:
[public]
        comment = Public
        path = /mnt/public
        public = yes
        browseable = yes
        guest ok = yes

在这里插入图片描述

  • 打开图形界面允许防火墙

    samba

    服务通过(应用程序-杂项-防火墙);
  • 设置

    Selinux

    设置成

    Permissive

    :
getenforce
setenforce 0
getenforce

在这里插入图片描述

  • 通过

    linux

    访问:
smbclient //192.168.0.190/public -U root

在这里插入图片描述



  • root

    加入加入到

    samba

    账户中:
smbpasswd -a root

在这里插入图片描述

  • 通过

    windows

    访问,如果出现访问不了,需要开启

    SMB

    文件共享支持:

    在这里插入图片描述

    在这里插入图片描述

在这里插入图片描述



版权声明:本文为NoamaNelson原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。