Samba服务配置及配置文件说明
阅读原文时间:2023年07月08日阅读:3

前言

1、配置Samba服务为什么要关闭防火墙(firewalld)和Selinux?

在linux操作系统中默认开启了防火墙,Selinux也处于启动状态,一般状态为enforing;所以,在我们搭建任何服务(每个服务都有自己的端口),由于防火墙和Selinux的存在导致服务的端口被拦截了,虽然可以用命令查看服务的监听端口,任然会访问不到自己搭建的服务!

2、关闭防火墙和Selinux

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
//关闭防火墙开机自启

[root@localhost ~]# vim /etc/selinux/config

This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=enforcing //将enforcing换成disabled

SELINUXTYPE= can take one of these three values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted
[root@localhost ~]# setenforce 0 //临时关闭selinux,也可以重启(永久生效)
[root@localhost ~]# getenforce //与setenforce是一对,这个是查看selinux是否生效
Permissive

一、Samba服务

1、Samba服务介绍

1️⃣:服务全称:Samba — SMB(Server Message Block服务器消息块--微软研发   CIFS)

2️⃣:服务功能:为网络(局域网)中客户机(Linux/Windows)提供文件和目录资源共享

3️⃣:服务模式:C/S 客户机服务器模式

4️⃣:模式的特点:服务的提供就需要在服务器端运行服务端程序,服务的访问则需要在客户机端运行客户端程序

5️⃣:服务客户端程序

  Linux:smbclient(查看共享、访问共享)    mount.cifs == mount -t cifs

  Windows:GUI-资源管理器(查看、访问)  映射网络驱动器

2、Samba服务相关软件包

1️⃣:服务软件包:samba

2️⃣:服务进程名:smbd(核心) 和 nmbd

  smbd:提供文件和目录共享,以及身份验证(默认情况下,是基于IP地址的访问共享)

  nmbd:提供客户端通过服务器主机名的方式访问共享

3️⃣:服务端口号:

  TCP:139和445(smbd)    tcp端口相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问

  UDP:137和138(nmbd)   udp端口相对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析

3、Samba服务配置文件

1️⃣:服务配置主文件:/etc/samba/smb.conf (包括全局配置、共享配置[用户目录及打印机共享、自定义共享])

2️⃣:服务管理脚本文件:/etc/rc.d/init.d/smb  | nmb

3️⃣:技术手册:/usr/share/doc/samba-版本号(直接Tab两下查看)

4、Samba主配置文件中相关参数介绍

1️⃣:SAMBA安全级别

  share:匿名访问,即客户端访问共享时不必输入用户名和密码,较为常用

  user:(默认)基于身份认证访问,即客户端访问共享时必须输入正确的用户名和密码,较为常用

  server:使用指定主机进行身份验证。即基于远程主机完成认证的访问

  domain:使用指定域控制器进行身份验证。即基于远程主机完成认证的访问

2️⃣:配置文件中规则:

  #号开头的行为注释行

  ;号开头的行为备用设置参数,需要启用时,删除分号

  设置参数的方式为  参数 = 值 (等于号前后各有一个空格)

  可采用缩进功能,仅使文档清晰

3️⃣:常用参数及意义

  workgroup = MYGROUP            //工作组名称  

  server string = qiangge Samba Server      //服务器描述

  netbios name = SMBSERVER1            //SAMBA服务NETBIOS名,可与hostname不同

  interfaces = lo eth0 192.168.12.2/24   192.168.13.2/24             //提供服务的接口,可写接口名,IP地址等

  hosts allow = 127. 192.168.12. 192.168.13.                   //允许访问服务的客户端,可写网络号,主机IP地址等

  log file = /var/log/samba/log.%m          //以每一个客户机建立一个独立的日志文件,%m代表以客户机主机名或IP地址为文件名的组成部分

  max log size = 50            //日志文件的大小,单位默认为KB

  security = user

    share:匿名访问,即客户端访问共享时不必输入用户名和密码,较为常用

    user:基于身份认证访问,即客户端访问共享时必须输入正确的用户名和密码,较为常用

    server:使用指定主机进行身份验证。即基于远程主机完成认证的访问

    domain:使用指定域控制器进行身份验证。即基于远程主机完成认证的访问

  passdb backend = tdbsam         //SAMBA用户密码数据库文件

5、关于共享目录的说明

[shared_name]                                         [共享资源的共享名称]           //共享目录名称是客户端访问共享时所用的名称,建议与物理目录名称不同更安全

comment = Comment String                    共享文件描述
* path = /path/to/share_directory              共享文件的绝对路径
allow hosts = host(subnet)                       允许访问此共享资源的主机列表
deny hosts = host(subnet)                       禁止访问此共享资源的主机列表
* writable = yes|no                                   是否有写权限
* browseable = yes|no                             是否浏览权限(yes为可见共享,no为隐藏共享)
user = user(@group)                               设置所有可能使用该共享资源的用户列表
valid users = user(@group)                     指定能够使用该共享资源的用户和组列表
invalid users = user(@group)                  指定不能够使用该共享资源的用户和组
read list = user(@group)                         设置能够读取该共享资源的用户列表
write list = user(@group)                         设置对该共享资源具有写权限的用户列表
admin list = user(@group)                       设置对共享资源具有管理权限的用户列表
* public = yes|no                                      指明该共享资源是否能给游客帐号访问
guest ok = yes|no                                    与public相同
hide dot files = yes|no                             是否隐藏以“.”号开头的文件
create mode = 0755                                指明新建立的文件的属性,一般是0755
directory mode = 0755                            指明新建立的目录的属性,一般是0755
sync always = yes|no                              指明写操作后是否进行同步操作
short preserve case = yes|no                  指明忽略文件名大小写
preserve case = yes|no                           指明保持文件名大小写
case sensitive = yes|no                           指明是否对大小写敏感
mangle case = yes|no                             指明混合大小写
default case = upper|lower                      指明缺省的文件名是全部大写还是小写
force user = lt                                          强制指定建立文件的属主是谁
wide links = yes|no                                  指明是否允许共享外符号连接
max connections = 100                           设定同时连接数是n
delete readonly = yes|no                         指明能否删除已经被定义为只读的文件

root preexec = /bin/mount -t iso9660 /dev/cdrom /mnt/cdrom           自动挂光驱
root postexec = /bin/umount /mnt/cdrom                                           自动