Linux下Samba详解及安装配置

时间:2021-09-30 18:13:51

1.简介

2.安装配置

3.在windows和linux系统上验证

一、简介

早期网络想要在不同主机之间共享文件大多要用FTP协议来传输,但FTP协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS开源文件共享程序:NFS(NetworkFile System)是一个能够将多台Linux的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持Linux与 Windows系统间的文件共享。

Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软件,实现了Linux和windows系统间的文件共享。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"可跨路由的使用samba所提供的功能。

samba的两个服务及端口

1.nmbd 主要利用udp 137和138端口负责名称解析的服务。

2.smbd 这个 进程 的主要功能就是用来管理 SAMBA 主机分享的目录、文件和打印机等等。 主要利用 TCP 协定来传输资料,使用端口为 139 及 445。

Samba的套件

1.samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;

2.samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等;

3.samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。

Linux下Samba详解及安装配置

配置文件相关参数(不同系统稍有差别):

[global]

 

#全局参数。

 

workgroup = MYGROUP

#工作组名称。

 

server string = Samba Server Version %v

#服务器介绍信息,参数%v为显示SMB版本号。

 

log file = /var/log/samba/log.%m

#定义日志文件存放位置与名称,参数%m为来访的主机名。

 

max log size = 50

#定义日志文件最大容量为50Kb。

 

security = user

#安全验证的方式,总共有4种。

 

#share:来访主机无需验证口令,更加方便,但安全性很差。

 

#user:需由SMB服务验证来访主机提供的口令后才可建立访问,更加的安全。

 

#server:使用独立的远程主机验证来访主机提供的口令(集中管理帐号)。

 

#domain:使用PDC来完成验证

 

passdb backend = tdbsam

#定义用户后台的类型,共有3种。

 

#smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码。

 

#tdbsam:创建数据库文件并使用pdbedit建立SMB独立的用户。

 

#ldapsam:基于LDAP服务进行帐户验证。

 

load printers = yes

#设置是否当Samba服务启动时共享打印机设备。

 

cups options = raw

#打印机的选项

[homes]

 

#共享参数

 

comment = Home Directories

#描述信息

 

browseable = no

#指定共享是否在"网上邻居"中可见。

 

writable = yes

#定义是否可写入操作,与"read only"相反。

[printers]

 

#打印机共享参数

 

comment = All Printers

 
 

path = /var/spool/samba

#共享文件的实际路径(重要)。

 

browseable = no

 
 

guest ok = no

#是否所有人可见,等同于"public"参数。

 

writable = no

 
 

printable = yes

 

标准的Samba共享参数是这样的:

参数

作用

[linuxprobe]

共享名称为linuxprobe

comment = Do not arbitrarily modify the database file

警告用户不要随意修改数据库

path = /home/database

共享文件夹在/home/database

public = no

关闭所有人可见

writable = yes

允许写入操作

但此时SMB服务默认的验证模式为user,我们需要先创建用户数据库后才可以正常使用。

二、安装配置

1.yum安装

# yum install samba

2.关闭selinux和iptables,或者添加规则

关闭:systemctl stop iptables

setenforce 0

或者将/etc/selinux/config下SELINUX=enforcing改为SELINUX=disabled

3.修改配置文件并添加系统用户并将用户添加到samba用户数据库中

Linux下Samba详解及安装配置

        pam password change = no

       passwd chat =**NEW*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *successfully*

      passwd program = LANG=en_US/usr/bin/passwd %u

      unix password sync = yes

      passdb backend = smbpasswd

      smb passwd file = /etc/samba/smbpasswd

    若/etc/samba/下没有smbpasswd,会自动创建。

    #useradd smbuser

    #smbpasswd –a smbuser 添加用户并设置密码  

    Linux下Samba详解及安装配置

smbpasswd(选项)(参数)

选项

-a:向smbpasswd文件中添加用户;

-c:指定samba的配置文件;

-x:从smbpasswd文件中删除用户;

-d:在smbpasswd文件中禁用指定的用户;

-e:在smbpasswd文件中激活指定的用户;

-n:将指定的用户的密码置空。

4.在SMB服务主配置文件的最下面追加共享文件夹的配置参数:

      [database]

      comment = Do not arbitrarily modify the database file

      path = /database

      public = no

      writable = yes

      在根目录下创建database目录

    保存smb.conf文件后重启启动SMB服务:

    #systemctl restart smb

5.在Windows下验证:

      Linux下Samba详解及安装配置

      登录进来可以看到刚刚所创建的database目录和用户的家目录。

      Linux下Samba详解及安装配置

      在smbuser下新建一个文件

      Linux下Samba详解及安装配置

      然后可以在服务器上用户家目录可以看到刚刚所创建的文件

      Linux下Samba详解及安装配置

      还可以通过磁盘映射使得局域网的访问更加方便。

      Linux下Samba详解及安装配置

      Linux下Samba详解及安装配置

      至此在windows上简单的部署成功。

6.在linux系统上验证共享结果:
      1)在客户端安装cifs-utils软件包

      #yum install –y cifs-utils

      2)创建挂载目录,并且挂载

      # mkdir /database

      在root家目录创建认证文件(依次为SMB用户名、SMB用户密码、SMB共享域):

      # vim auth.smb

      username=smbuser

      password=123

      domain=MYGROUP

      # chmod -Rf 600 auth.smb 权限太高不安全

      配置其挂载信息(内容依次为远程共享信息、本地挂载目录、文件系统类型、认证文件以及开机自检选项):

      # vim /etc/fstab

      //192.168.1.1222/database /database cifs credentials=/root/auth.smb 0 0

      # mount –a

 然后查看挂载目录

  Linux下Samba详解及安装配置

      3)在服务器的/database目录下创建目录或者文件并在客户端上查看是否成功

      服务器上创建111文件:

      Linux下Samba详解及安装配置

      若提示权限不足,把/database目录权限修改为如下即可:

      Linux下Samba详解及安装配置

      注意所属主与所属组

      在客户端查看:

      Linux下Samba详解及安装配置

      至此实现了Linux系统之间分享数据。

Linux下Samba详解及安装配置的更多相关文章

  1. Linux系统安装Samba共享服务器详解及安装配置

    一.简介 Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软件,实现了Linux和windows系统间的文件共享.SMB(Server Messages Block,信息服务 ...

  2. Linux 下crontab 详解转

    http://yaksayoo.blog.51cto.com/510938/162062 Linux计划任务工具cron用法详解 linux下大名鼎鼎的计划任务工具crontab的使用介绍baidu. ...

  3. linux下jdk和tomcat的安装配置

    操作系统:centos (32bit) 1.  下载合适的安装包. 原则是:安装包类型和(bit)位数要与操作系统一致,tomcat和jdk的版本要兼容,如: apache-tomcat-6.0.37 ...

  4. 12 Linux下crontab详解

    1. 概述: crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进 ...

  5. 【转载】Linux下makefile详解--跟我一起写 Makefile

    概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...

  6. Linux下crontab详解

    1.crond介绍 crond是Linux下的任务调度命令,让系统定期执行指定程序.crond命令每分钟都会检查是否有要执行的工作,若有要执行的程序便会自动执行. linux下任务调度工作主要分两类: ...

  7. 详解CentOS7安装配置vsftp搭建FTP

    安装配置vsftpd做FTP服务,我们的Web应用使用git管理进行迭代,公共文件软件存储使用开源网盘Seafile来管理,基本够用.想不到FTP的使用的场景,感觉它好像老去了,虽然现在基本没有用到这 ...

  8. Windows下图文详解Mongodb安装及配置

    这两天接触了MongoDB数据库,发现和mysql数据库还是有很大差别的,同时使用前的配置看起来有些繁杂,踩过不少坑,其实只要一步一步搞清了,并不难. 接下来,我就整理下整个安装及配置过程. 安装的M ...

  9. Linux下lampp详解 (转)

    重要文件解释: ProFTPD:一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在*软件基金会的版权声明(GPL)下开发.发布的免费软件,可以随意修 ...

随机推荐

  1. 整理iOS9适配

    整理iOS9适配 本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版, ...

  2. 消息队列系列(一):.Net平台下的消息队列介绍

    本系列主要记录最近学习消息队列的一些心得体会,打算形成一个系列文档.开篇主要介绍一下.Net平台下一些主流的消息队列框架.       RabbitMQ:http://www.rabbitmq.com ...

  3. CUBRID学习笔记 4 端口和win7下连接数据库cubrid教程

    都是官方的文档 ,水平有限, 大家可以看原文. http://www.cubrid.org/wiki_tutorials/entry/connecting-to-a-remote-cubrid-dat ...

  4. 【翻译+整理】.NET Core的介绍

    .NET Core 是一个通用开发平台,它由微软和开源社区共同管理(git hub的.NET开源社区): 他支持Windows,macOS和Linux,并且可以运行在硬件设备中.云平台上和物联网嵌入式 ...

  5. Oracle的trim( )、ltrim( )、rtrim( )三个函数的用法及注意事项

    学习一下用法整理trim().ltrim().rtrim()的用法 trim().ltrim().rtrim()三个函数有两个作用,分别是: 一.去除字符串前后空格(基本用法) trim(string ...

  6. 使用Redis和jackson操作json中遇到的坑

    前言(可以略过) 最近在开发一个智能电表的管理系统,与常规的面向业务的系统不同.智能电表特点是每30分钟会向服务器发一次请求,报道自己目前的电表情况.然后服务器根据电表情况统计此电表的电量使用情况,包 ...

  7. mybatis逆向文件

    一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserExample example) thorws SQLException ...

  8. python pip安装报错: ConnectTimeoutError

    错误: 解决方案:  使用镜像:pip install xxxx -i https://pypi.douban.com/simple  如:pip3 install --upgrade tensorf ...

  9. mysql基准测试工具tpcc-mysql安装、使用、结果解读

    TPCC是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统,tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于My ...

  10. 从一个activity返回

    页面之间的跳转有startActivity 和startActivityForResult两种, 返回的话用finish方法,如下示例 MyActivity.this.finish();那你返回按钮使 ...