Linux服务-samba

1. samba简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

在此之前我们已经了解了NFS,NFS与samba一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持windows平台,而本章要提到的samba是能够在任何支持SMB协议的主机之间共享文件的一种实现,当然也包括windows。

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB协议是C/S型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

Samba监听端口有:

TCP UDP
139 137
445 138
[root@localhost ~]# ss -antlp | grep smbd
LISTEN 0 50 *:445 *:* users:(("smb",pid=1821,fd=35))
LISTEN 0 50 *:139 *:* users:(("smb",pid=1821,fd=36))
LISTEN 0 50 :::445 :::* users:(("smb",pid=1821,fd=33))
LISTEN 0 50 :::139 :::* users:(("smb",pid=1821,fd=34))

tcp端口相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问。

udp端口相对应的服务是nmbd服务,其作用是提供基于NetBOIS主机名称的解析。

samba进程:

进程 对应
nmbd 对应netbios
smbd 对应cifs协议
winbindd +ldap 对应WindowsAD活动目录

samba用户:

帐号 密码
都是系统用户/etc/passwd Samba服务自有密码文件通过smbpasswd-a USERNAME命令设置
//smbpasswd命令:
-a Sys_User //添加系统用户为samba用户并为其设置密码
-d //禁用用户帐号
-e //启用用户帐号
-x //删除用户帐号 [root@localhost ~]# smbpasswd -a cwh
New SMB password:
Retype new SMB password:
Added user cwh.

Samba安全级别:

Samba服务器的安全级别有三个,分别是user,server,domain

安全级别 作用
user 基于本地的验证
server 由另一台指定的服务器对用户身份进行认证
domain 由域控进行身份验证

以前的samba版本支持的安全级别有四个,分别是share,user,server,domain

share是用来设置匿名访问的,但现在的版本已经不支持share了,但是还是可以实现匿名访问的

只是配置方式变了

samba配置文件:

  • /etc/samba/smb.conf(主配置文件)
samba三大组成 作用
[global] 全局配置,此处的设置项对整个samba服务器都有效
[homes] 宿主目录共享设置,此处用来设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中
[printers] 打印机共享设置

常用配置文件参数:

参数 作用
workgroup 表示设置工作组名称
server string 表示描述samba服务器
security 表示设置安全级别,其值可为share、user、server、domain
passdb backend 表示设置共享帐户文件的类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本samba密码文件)
comment 表示设置对应共享目录的注释,说明信息,即文件共享名
browseable 表示设置共享是否可见
writable 表示设置目录是否可写
path 表示共享目录的路径
guest ok 表示设置是否所有人均可访问共享目录
public 表示设置是否允许匿名用户访问
write list 表示设置允许写的用户和组,组要用@表示,例如 write list = root,@root
valid users 设置可以访问的用户和组,例如 valid users = root,@root
hosts deny 设置拒绝哪台主机访问,例如 hosts deny = 192.168.72.1
hosts allow 设置允许哪台主机访问,例如 hosts allow = 192.168.72.2
printable 表示设置是否为打印机
//测试配置文件是否有语法错误,以及显示最终生效的配置:使用testparm命令
[root@localhost ~]# testparm
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[cwh]"
Loaded services file OK.
Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions

2. samba访问

实验环境说明:

服务端 客户端
192.168.112.14 192.168.112.149

需求:搭建用户认证共享服务器,用户认证共享需要映射系统用户为一个虚拟用户

//服务端的配置:
第一步安装samba服务
[root@localhost ~]# yum -y install samba-*
第二步关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
第三步创建需要映射的目录,如果已经存在则不需要创建,记得先创建用户
[root@localhost ~]# useradd -M cwh
[root@localhost ~]# mkdir /opt/cwh
[root@localhost ~]# chown -R cwh:cwh /opt/cwh/
第四步为创建的用户配置samb密码
[root@localhost ~]# smbpasswd -a cwh
New SMB password:
Retype new SMB password:
Added user cwh.
第五步将用户cwh映射为虚拟用户
echo 'cwh = share' >> /etc/samba/smbusers
第六步再配置文件中全局配置下开启映射
[root@localhost ~]# vim /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user passdb backend = tdbsam printing = cups
printcap name = cups
load printers = yes
cups options = raw
username map = /etc/samba/smbusers //加入这一行
第七步将需要共享的目录写入配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
[cwh]
path = /opt/cwh
browseable = yes
guest ok = yes
writable = yes
write list = share
public = yes
第八步重启smb和nmb服务
[root@localhost ~]# systemctl restart smb nmb //客户端配置
第一步安装samba*的服务
[root@localhost ~]# yum -y install samba-*
第二步关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
第三步创建挂载目录
[root@localhost ~]# mkdir /local
第四步将挂载写入配置文件
[root@localhost ~]# echo '//192.168.112.14/cwh /local cifs defaults,username=share,password=123 0 0' >>/etc/fstab
第五步挂载
[root@localhost ~]# mount -a
第六步在挂载目录创建文件试试是否有写权限
[root@localhost ~]# cd /local/
[root@localhost local]# touch aaa
[root@localhost local]# ls
aaa

需求:搭建匿名用户共享服务器,不论是匿名用户还是用户认证共享,均要在客户机验证结果

//服务端上
第一步安装samba服务
[root@localhost ~]# yum -y install samba-*
第二步创建共享目录并给与读写权限
[root@localhost ~]# mkdir /opt/cwh
[root@localhost ~]# chmod 777 /opt/cwh -R //-R递归修改
第三步在/etc/samba/smb.conf配置文件中写入匿名用户
[global]
workgroup = SAMBA
security = user passdb backend = tdbsam printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = Bad User //加入这一行
第四步将需要共享的目录写入配置文件
[cwh]
path = /opt/cwh
browseable = yes
guest ok = yes
writable = yes
public = yes
第五步重启服务
[root@localhost ~]# systemctl restart smb nmb //客户端
第一步安装samba服务
[root@localhost ~]# yum -y install samba-*
第二步创建本地挂载目录
[root@localhost ~]# mkdir /local
第三步将挂载写入配置文件
root@localhost local]# vim /etc/fstab
/192.168.112.14/cwh /local cifs defaults,username=BadUser 0 0
第四步挂载目录并创建一个文件查看效果
[root@localhost local]# touch bbb
[root@localhost local]# ll
总用量 0
-rwxrwxrwx. 1 1000 1000 0 4月 16 16:05 aaa
-rw-r--r--. 1 nobody nobody 0 4月 16 16:12 bbb

Linux服务-samba的更多相关文章

  1. linux服务samba与ftp篇

    samba复习: 1.下载samba:yum -y install samba 2.打开配置文件/etc/samba/smb.conf输入: [共享文件名] path = 目录名 (事先创建) pub ...

  2. 利用Linux的Samba服务模拟NT域

    利用Linux的Samba服务模拟NT域 Samba是一个与Windows NT具有相同协议的软件包.我们可以利用Samba服务来模拟 Windows NT域,使用户从Windows计算机上直接使用一 ...

  3. 【Linux】samba服务

    samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件. ①Samba软件包的安装 使用源安装,在终端中输入如下命令: #sudo apt-get install samb ...

  4. 第11章 Linux服务管理

    1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中.当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快.但不利之处是系统中服务越多,消耗的资源越 ...

  5. Linux下samba的安装与配置

    背景          在window7下面虚拟了一个CentOS6.3,为了学习命令行就没有装图形包,所以我的CentOS是黑屏的那种,呵呵,当然了,VMWare提供 的增强功能我就不能用了(或许能 ...

  6. linux程序自启动和新建linux服务的方法

    1 linux创建自启动程序    自启动的两种方法,都经过自己测试.1.1 自启动程序方法1:    在etc/rc.local在里面加入/home/robin/code/autoruntest & ...

  7. Linux下Samba的配置

    前言: 为了实现windows 和 Linux以及其它操作系统之间的资源共享,软件商推出nfs 和samba两种解决方案.因为市场上缺乏象pc-nfs那样的client工具,使得Linux和windo ...

  8. Linux服务-ftp

    目录 1. ftp简介 2. ftp架构 3. ftp数据连接模式 4. 用户认证 5. vsftpd 5.1 vsftpd安装 5.2 vsftpd配置 5.3 vsftpd实验配置 5.3.1 安 ...

  9. Linux服务管理总结

    简介与分类 系统的运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界 ...

随机推荐

  1. 润乾报表新功能–导出excel支持锁定表头

     在以往的报表设计中,锁定表头是会经常被用到的一个功能,这个功能不仅能使浏览的页面更加直观,信息对应的更加准确,而且也提高了报表的美观程度.但是,很多客户在将这样的报表导出excel时发现exce ...

  2. java 对象

      对象可以看成是静态属性和动态属性的封装体.静态属性——成员变量:动态属性——方法. 1.汇编语言是对机器语言的抽象. 2.面向过程的语言是对汇编语言的抽象.属性和方法分离,不是封装在一起的,复用性 ...

  3. Automate the Sizing of your SGA in Oracle 10g

    How much memory does each of the individual components of the SGA need? Oracle now has methods to de ...

  4. LeetCode题解之Number of 1 Bits

    1.题目描述 2.问题分析 使用C++ 标准库的 bitset 类,将整数转换为 二进制,然后将二进制表示转换为字符串,统计字符串中 1 的个数即可. 3.代码 int hammingWeight(u ...

  5. 监控SQLServer 数据库表每天的空间变化情况

    阅读完桦仔的<分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)>后,我想使用文中提供的代码做一个统计表每天的新增行数及新增存储空间的功能 实现步骤如下: 1 ...

  6. [控件] TranformFadeView

    TranformFadeView 效果图: 源码地址: https://github.com/YouXianMing/UI-Component-Collection 注意: maskView是iOS8 ...

  7. 清除 Exchange 2013/2016/2019 日志和ETL文件

    Exchange Server  的2个日志目录会增长的很快,需要定时清理,不然C盘的空间很快就会吃光,以下这个powershell脚本就是用于清理目录下面的日志的,已在生产环境中测试过,没问题: S ...

  8. pt1000测温度

    本设计使用的PT1000热电阻铂热电阻,它的阻值会随着温度的变化而改变.PT后的1000即表示它在0℃时阻值为1000欧姆,在300℃时它的阻值约为2120.515欧姆.它的工业原理:当PT1000在 ...

  9. SOA面向服务架构——SOA的概念

    SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”.   一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...

  10. jQuery实现简易轮播图的效果

    (图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue an ...