实现Linux系统之间共享文件资源以及在Linux系统与Windows系统之间共享文件

Samba软件包的构成

  • 服务端:samba
  • 客户端:samba-client
  • 公共组件:samba-common
  • Smbd:负责为客户机提供服务器中共享资源(目录和文件)的访问,监听139端口(smb协议),445端口(cifs协议)
  • Nmbd:负责提供基于netblos协议的主机名称解析,以便为windows网络中的主机进行查询服务,监听137-138端口(netblos协议)

Samba服务的程序组件

主配置文件路径

/etc/samba/smb.conf 

配置文件参数解释

[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:来访主机无需验证口令;比较方便,但安全性很差,7.0以上系统不支持share,

使用user模式,map to guest=bad user代替

#user:需验证来访主机提供的口令后才可以访问;提升了安全性

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

#domain:使用域控制器进行身份验证

passdb backend = tdbsam

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

#smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码

#tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户

#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

u  部署samba服务

匿名方式访问

准备环境

setenforce 0                      //关闭selinux
systemctl stop firewalld          //关闭防火墙

1.搭建本地yum源。

2.使用yum方式安装samba服务程序

yum install -y samba*             //yum方式安装samba服务
  1. 创建共享的目录
  2. 编辑主配置文件设置匿名共享,设置共享目录
  3. 重启服务,使用windos访问验证,无法访问请检查iptable 防火墙
mkdir -p /var/public              //创建要共享目录
vim /etc/samba/smb.conf                   //编辑samba主配置文件
------------------添加或者修改红色部分的参数-----------------
[global]
        workgroup = SAMBA
        security = user            //7.0以下系统将user改为share
        passdb backend = tdbsam
        map to guest = bad user            //7.0以上匿名访问必加
[public]                                  //共享目录名称
        comment = public                  //共享描述
        path = /var/public                //共享目录路径
        guest ok = yes                     //共享目录是否所有人可见
        read only = yes                    //是否只读
        browseable = yes                   //网络发现是否可见
systemctl restart smb                     //重启samba服务
用户验证的共享

案例:创建一个共享目录/var/yonghu/,只有zhangsan和lisi可以访问共享,只有zhangsan有可以写入的权限

注意:创建共享用户前需要有对应的系统用户

  1. 创建共享用户zhangsan、lisi,创建共享的目录
  2. 修改smb配置文件,设置共享目录
Useradd zhangsan          //创建系统用户zhangsan
Useradd lisi              //创建系统用户lisi
Pdbedit -a -u zhangsan     //创建共享用户zhangsan,-a添加-u指定用户
Pdbedit -a -u lisi         //创建共享用户lisi,-a添加-u指定用户
Mkdir /var/yonghu         //创建共享目录
vim /etc/samba/smb.conf           //编辑samba主配置文件
------------------添加或修改红色部分参数-------------------
[global]
        workgroup = MYGROUP
        security = user
        passdb backend = tdbsam
        map to guest = bad user    //匿名访问必加,否则需要密码
[public]
        comment = public
        path = /var/public
        guest ok = yes
[yonghu]                          //共享目录名称
        comment = yonghu           //描述
        path = /var/yonghu         //共享目录路径
        public = no        //是否所有人可见
        read only = yes            //是否只读
        valid users = zhangsan,lisi       //哪些用户可以访问
        write list = zhangsan      //哪些用户可以写入,组加“@组名”
        directory mask = 0755      //用户上传目录权限为755
        create mask = 0644         //用户上传文件权限为644

3.给予共享目录777权限

Chmod -R 777 /var/yonghu          //更改共享目录的权限为777

4.重启smb服务验证权限

systemctl restart smb             //重启samba服务

windows清除smb的连接会话

net use                           //查看连接会话
net use * /del                    //清除连接会话
用户映射的共享(安全性高)

正常情况下,一个共享账号都有一个同名的系统账号很不安全,可以使用映射的方式,将一个共享用户映射为多个不同的名称(别名),只需要通过共享用户的别名和密码就能访问资源了,而不需要知道真正的共享用户(系统用户)名称

默认的共享账号映射文件位于:/etc/samba/smbusers

启用映射功能,需要修改主配置文件,在全局配置加入:

username map=/etc/samba/smbusers

重启服务即可生效

访问地址限制

在global或者配置里面添加hosts allow或者hosts deny即可

Hosts allow = 192.168.2.  172.16.      //允许192.168.2.0,172.16.0.0网段访问
Hosts deny = 192.168.3.  172.14.      //拒绝192.168.3.0,172.14.0.0网段访问
使用smbclient访问共享

查询共享资源列表

smbclient -L 192.168.2.162 -U administrator

匿名访问共享文件夹

smbclient //192.168.2.223/public

使用用户名、别名访问共享

smbclient -U ls //192.168.2.223/zhangsan
挂载共享目录

Linux下挂载samba共享目录

1.使用yum安装cifs-utils工具
yum install -y cifs-utils                 //yum安装cifs-utils工具
2.使用smbclient工具查询共享目录
smbclient -L 192.168.2.224                //查询2.224的共享目录
匿名挂载方法
mount.cifs //192.168.2.223/public /ceshi
                          //将public目录挂载到本地ceshi目录
指定用户挂载
mount.cifs //192.168.2.223/yonghu /ceshi/ -o username=zhangsan,password=aaa
           //将yonghu目录挂载到本地ceshi目录,指定用户名zhangsan

Linux下挂载windos共享目录

1.使用smbclient工具查询共享目录
smbclient -L 192.168.2.224                //查询2.224的共享目录
2.挂载windos共享目录
  ①mount -t cifs -o username=administrator,password=123 //192.168.2.162/d /ceshi/                 //将d盘挂载到本地的ceshi目录
  ②mount -t cifs -o username=administrator,password=666,vers=2.0 //192.168.9.1/test /media/windows
smb常见故障

注意:如果windows无法访问,先使用其他客户端或者linux测试是否能访问,然后在排除故障

1.win7访问Linux Samba的共享目录提示“登录失败:用户名或密码错误”解决方法:

单击”开始“-“运行”,输入secpol.msc,打开“本地安全策略”,在本地安全策略窗口中依次打开“本地策略”-->“安全选项”,然后再右侧的列表中找到“网络安全:LAN管理器身份验证级别”,把这个选项的值改为“发送 LM 和 NTLM – 如果已协商,则使用 NTLMv2会话安全”,最后应用确定,然后重新连接测试

linux搭建smb、挂载smb、Windows共享的更多相关文章

  1. 如何在 Linux 上永久挂载一个 Windows 共享

    导读 如果你已经厌倦了每次重启 Linux 就得重新挂载 Windows 共享,读读这个让共享永久挂载的简单方法. 在 Linux 上和一个 Windows 网络进行交互从来就不是件轻松的事情.想想多 ...

  2. Linux访问windows共享(samba/smbclient/smbfs/cifs)

    samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件.●安装samba,samba-client和cifs-utils.x86_64此步将自动安装好相关依赖包:samba ...

  3. Linux分区和挂载(mount命令的学习)

    当Windows系统出现问题的时候,可能需要重装系统,这个时候我们往往会使用系统盘将系统重新安装在C盘上,其他盘上的文件都没有受到重装系统的影 响,这就是分区的好处之一.同样,在Linux中也需要分区 ...

  4. Linux开发环境搭建三 使用mount -t cifs 挂载windows共享目录方法与问题解决

    转载链接:https://blog.csdn.net/fuyuande/article/details/82915800 嵌入式开发通常是在linux环境下编译,windows下开发,这就需要在lin ...

  5. [linux]挂载smb

    什么是 smb 服务器消息区块(英语:Server Message Block,缩写为SMB,服务器消息区块),又称网络文件共享系统(英语:Common Internet File System,缩写 ...

  6. lubuntu通过Smb访问Windows共享目录

    lubuntu通过Smb访问Windows共享目录 如果未安装Smb,先安装: apt-get install smbclient smbfs 安装后,查看共享主机上的共享目录: CentOS/Red ...

  7. linux系统下挂载windows共享目录

    在工作中有时我们需要在linux上挂载windows共享目录.首先我们需要学会在linux上查看windows共享了那些目录.查看操作需要安装samba-client. [root@ ~]# yum ...

  8. How To mount/Browse Windows Shares【在linux{centos}上挂载、浏览window共享】

    How to mount remote Windows shares Contents Required packages Basic method Better Method Even-better ...

  9. 如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享

    如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享 实现环境:VMware workstations.RHEL7.0 第一步:配置网卡IP及yum软件仓库 命令:vim ...

随机推荐

  1. 三元运算符代替if-else

    main(List<String> args) { int age = 60; String status = age < 50 ? "Still young" ...

  2. RabbitMQ 入门指南——安装

    RabbitMQ好文 Rabbitmq Java Client Api详解 tohxyblog-博客园-rabbitMQ教程系列 robertohuang-CSDN-rabbitMQ教程系列 Rabb ...

  3. (转)renren-fast解读(一)

    (二期)8.renren-fast项目解读(一) [课程八]预防xss...注入.xmind0.2MB [课程八预习]开...解读.xmind0.5MB 课程八_日志处理与...模块.xmind0.2 ...

  4. C# DateTime判断时间

    两种情况: 1 DateTime? dtTemp = null; if(dtTime != null) { //wawawa } 刚刚学会的,可空值类型,可判断是否赋值 2 DateTime dtTe ...

  5. P4306 [JSOI2010]连通数

    思路 要求求每个点能到达的点数就是传递闭包 然后n^3Floyd可做,但是n=2000,然后bitset压位 复杂度\(O(\frac{n^3}{32})\),能过 代码 #include <c ...

  6. 浅谈IIS 和 asp.net的应用之间的关系

    IIS可以理解为一个web服务器. 用于提供web相关的各种服务. IIS6.0中添加了一个新的功能, application pool. application pool的作用是将运行在同一个ser ...

  7. .Net Core 本地化&全球化 实践

    介绍: 所有有关本地化的数据获取,都是从统一的一个资源文件中获取 1.创建虚拟类.资源文件,用于作为本地化数据的获取源 2.Configure localization:支持view.data ann ...

  8. Linux 解决 firefox 中文页面乱码问题

    1.由于 firefox 默认是允许网页自己选择字体,在 Linux 上便会出现部分网站的乱码情况.因此可以取消允许页面自己选择字体这个选项便能解决部分乱码情况.

  9. Latex citation using natbib and footnotesize

    References: Natbib bibliography styles How to change font size for bibliography? Latex citation usin ...

  10. 关于Django的Ajax操作

    一 什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript语言与服 ...