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等等。

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

[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用户数据库中

        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 添加用户并设置密码  

    

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下验证:

      

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

      

      在smbuser下新建一个文件

      

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

      

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

      

      

      至此在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

 然后查看挂载目录

  

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

      服务器上创建111文件:

      

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

      

      注意所属主与所属组

      在客户端查看:

      

      至此实现了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. Python全栈学习_day004作业

    ,写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry&qu ...

  2. lfs(systemv版本)学习笔记-第4页

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemv版本)学习笔记第3页:https://www.cnblogs.com/renren-study-notes ...

  3. cf1130E. Wrong Answer(构造)

    题意 题目链接 Sol 对构造一无所知... 题解的方法比较神仙,,设第一个位置为\(-1\),\(S = \sum_{i=1}^n a_i\) 那么我们要让\(N * S - (N - 1) * ( ...

  4. 函数节流scroll,兼容火狐滚轮事件

    //函数节流 var wheelTimeout; var wheelFun = function (func) { if (wheelTimeout) { return; } func(); whee ...

  5. JavaScript长时间未操作自动退出登录

    主要是通过mouseover 来监听有没有进行当前页面操作,通过未操作时间和设定退出的时间做比较,从而退出登录. var oldTime = new Date().getTime(); var new ...

  6. MQTT详解以及在IoT中的应用

    MQTT定义: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台, ...

  7. Kotlin入门(3)基本变量类型的用法

    上一篇文章介绍了Kotlin在App开发中的简单用法,包括操纵控件对象.设置控件监听器,以及弹出Toast提示等等.也许大家已经迫不及待想要了解更深入的App开发,可是由于Kotlin是一门全新的语言 ...

  8. Python:GUI之tkinter学习笔记之messagebox、filedialog

    相关内容: messagebox 介绍 使用 filedialog 介绍 使用 首发时间:2018-03-04 22:18 messagebox: 介绍:messagebox是tkinter中的消息框 ...

  9. SQL注入介绍

    一.SQL注入概念   1.sql注入是一种将sql代码添加到输入参数中   2.传递到sql服务器解析并执行的一种攻击手法   举例:某个网站的用户名为name=‘admin’.执行时为select ...

  10. HTML语言和CSS开发

    第一张 HTML基础1.HTML:超文本标记语言(它除了文字,还能写图片.视频.音频.交互),他不是编程语言,它是标记语言2. <!DOCTYPE html> HTML5版本申明 < ...