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

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

  • [1 samba服务相关知识](#1 samba服务相关知识)
    • [1.1 SMB协议](#1.1 SMB协议)
    • [1.2 samba工作原理](#1.2 samba工作原理)
      • [1.2.1 相关进程](#1.2.1 相关进程)
      • [1.2.2 samba工作流程](#1.2.2 samba工作流程)
      • [1.2.3 samba功能](#1.2.3 samba功能)
  • [2 samba服务器安装](#2 samba服务器安装)
    • [2.1 利用光驱安装](#2.1 利用光驱安装)
    • [2.2 利用光盘映射文件](#2.2 利用光盘映射文件)
  • [3 启动与停止samba服务](#3 启动与停止samba服务)
  • [4 配置samba服务器](#4 配置samba服务器)
    • [4.1 samba主配置文件smb.conf](#4.1 samba主配置文件smb.conf)
      • [4.1.1 samba配置简介](#4.1.1 samba配置简介)
      • [4.1.2 全局变量](#4.1.2 全局变量)
      • [4.1.3 共享服务](#4.1.3 共享服务)
    • [4.2 samba服务的日志和账号](#4.2 samba服务的日志和账号)
      • [4.2.1 samba的服务日志文件](#4.2.1 samba的服务日志文件)
      • [4.2.2 samba服务密码文件](#4.2.2 samba服务密码文件)
  • [5 配置samba客户端](#5 配置samba客户端)
    • [5.1 在linux中测试samba服务器](#5.1 在linux中测试samba服务器)
    • [5.2 在windows中测试samba服务器](#5.2 在windows中测试samba服务器)
  • [6 实际实例](#6 实际实例)
    • [6.1 实例说明](#6.1 实例说明)
    • [6.2 实现过程](#6.2 实现过程)

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 共享服务

  • 共享部分包含[home]、[printer]、[自定义共享名];
  • samba默认开启[home]、[printer]共享;
  • 可自行创建共享目录,格式如下:
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文件共享支持:

相关推荐
SPC的存折2 小时前
1、Redis数据库基础
linux·运维·服务器·数据库·redis·缓存
爱学习的小囧3 小时前
VMware ESXi 6.7U3v 新版特性、驱动集成教程和资源包、部署教程及高频问答详情
运维·服务器·虚拟化·esxi6.7·esxi蟹卡驱动
小疙瘩3 小时前
只是记录自己发布若依分离系统到linux过程中遇到的问题
linux·运维·服务器
dldw7773 小时前
IE无法正常登录windows2000server的FTP服务器
运维·服务器·网络
我是伪码农4 小时前
外卖餐具智能推荐
linux·服务器·前端
汤愈韬4 小时前
下一代防火墙通用原理
运维·服务器·网络·security
皮皮林5515 小时前
强烈建议大家使用 Linux 做开发?
linux
IMPYLH5 小时前
Linux 的 od 命令
linux·运维·服务器·bash
Kk.08026 小时前
Linux(十一)fork实例练习、文件操作示例及相关面试题目分享
linux·运维·算法
数据雕塑家6 小时前
Linux下大文件切割与合并实战:解决FAT32文件系统传输限制
linux·运维·服务器