SAMBA基本介绍

概念

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。也是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。
在linux中我们可以使用 FTP NFS这类型文件共享协议,但是对于window上比较简单的直接打开的服务,在linux中的nfs协议来说是不能在window上使用的,这种直接将文件系统共享出来的协议为SMB。

功能

  1. 通过SMB协议进行文件共享
  2. 通过SMB协议进行打印共享(我们可以通过在linux上通过smb配置打印服务器,为window提供打印服务)
  3. 加入一个windows2000/2003/2008域环境
  4. 通过windows域环境进行认证操作。

SMB协议又称为CIFS(Common Internet File System)协议

SAMBA配置

安装samba

已经配置好了yum仓库,进行下列操作
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# yum install samba -y
Samba拥有两个主服务(相关服务),对于一般使用的服务他只有一个主服务
smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用139/445端口
nmbd 提供Netbios(解析协议慢慢的被淘汰)支持,使用137/138端口,而对于这种协议使用较少,现在都是dns进行解析
一般作为文件共享使用samba,则只需要smbd服务

SAMBA配置文件
SAMBA的配置文件为/etc/samba/smb.conf

配置文件分为:
[global] 定义全局性配置(配置samba服务的相关参数)
[homes] 定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)
[printers] 定义打印机共享配置

[global] //全局配置workgroup = MYGROUP  //定义该Samba服务器所在的工作组或者域server string = Samba Server Version %v  //设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用%v = Samba服务的版本号。log file = /var/log/samba/log.%m  // 定义记录文件的位置LogFileNamemax log size = 50   //定义记录文件的大小size(单位是KB,如果是0的话就不限大小)security = user /*定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:* share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。* user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。* server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。* domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。
*/passdb backend = tdbsamload printers = yescups options = raw
[homes] //在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。comment = Home Directoriesbrowseable = nowritable = yesvalid users = %S   //设置登录用户可以访问valid users = MYDOMAIN\%S[printers]comment = All Printerspath = /var/spool/samba //path指明打印的文件队列暂时放到/var/spool/samba目录下。browseable = noguest ok = no   // guest ok说明游客也能打印writable = noprintable = yes   //指明该打印机可以打印write list = +staff   // @用来指定可以在该共享下写入文件的用户

主配置文件

[root@localhost ~]# vim /etc/samba/smb.conf
[global]          //全局控制段                                    workgroup = workgroup   //工作组server string = Samba Server Version %vsecurity = userencrypt passwords = yes     //密码加密wins support = yes          //wins支持            log level = 1               //日志级别                  max log size = 1000         //最大日志kb               read only = no              //可读写
[homes]        //家目录                                 browsable = no        //浏览                      map archive = yes
[printers]      //打印机                                   path = /var/tmp       //指定目录printable = yes       //是个打印机                         min print space = 2000    //空间
[test]         //共享的目录                                              browsable = yes        //可浏览                        read only = yes        //只读                        path = /usr/local/samba/tmp     //共享的服务器目录

windows系统访问:
\\172.24.8.130服务器地址

提示输入用户以及密码

那么我们便添加samba用户

添加SAMBA用户
[root@localhost ~]# useradd aaa          //先添加用户
[root@localhost ~]# useradd bbb
[root@localhost ~]# useradd ccc
[root@localhost ~]# smbpasswd -a aaa  //添加samba用户
New SMB password:                    //密码均为redhat
Retype new SMB password:
Added user aaa.
[root@localhost ~]# smbpasswd -a bbb
New SMB password:
Retype new SMB password:
Added user bbb.
[root@localhost ~]# smbpasswd -a ccc
New SMB password:
Retype new SMB password:
Added user ccc.
[root@localhost ~]# pdbedit -L     //查看samba用户
aaa:1001:
ccc:1003:
bbb:1002:

window系统访问查看:

使用aaa用户登陆,访问到它的家目录

windows系统中删除登陆缓存信息

cmd>net use * /delete


SAMBA下的部分常用参数
用户控制:
public =所有用户都可以访问    /guest ok=yes/no
map to guest = Bad User        匿名访问
browseable =   可浏览(设置共享是否可游览,如果是no表示隐藏,通过ip+共享名进行访问)
valid users = username,@组名       设置黑名单
writable = yes        可写,还要看目录权限
writable list = maomao,@GROUPNAME,+GROUPNAME
readonly = yes        只读设置
create mask = 0644     客户机创建文件权限
directory mask = 0744     客户机创建目录的权限
valid user = user1,user2,@group1       禁止登录用户,用户用逗号隔开,组用@  invalid =             允许访问控制
max connections = 最大连接数目
deadtime = 断掉连接时间()分钟,0为不限制
hosts allow =   允许主机
hosts deny =    拒绝主机(两个都写,允许优先)

SAMBA配置案例

案例一

要求:
1、通过samba实现公司的文件交换服务器,
2、实现/public 目录让所有人访问,所有人都可以写入文件

配置:

[root@localhost ~]# vim /etc/samba/smb.conf
//再此文件最后添加如下命令
[public]path = /public //指定路径public = yes //权限comment = file //对目录进行描述writable =yes //可写
[root@localhost ~]# systemctl restart smb nmb

windows下访问:

点击public目录出现此种情况

原因是没有创建public目录,解决方法就是创建一个public目录

[root@localhost ~]# mkdir /public
[root@localhost ~]# touch /public/{1,2,3}

windows下访问

此时,下载文件是可行的,但是上传仍然没有权限,这里灭有权限是/public目录没有写的权限

[root@localhost ~]# touch /public/{1,2,3}
[root@localhost ~]# ll -d /public
drwxr-xr-x. 2 root root 30 Mar 18 04:17 /public
[root@localhost ~]# chmod 757 /public      //给public目录增加写权限
[root@localhost ~]# ll -d /public
drwxr-xrwx. 2 root root 30 Mar 18 04:17 /public

windows下至此可以对public目录进行上传下载操作

案例二

要求:
1、通过samba提供一个公共文件服务器,所有人都可以访问并写入,但是不可以删除和修改他人的文件。
2、技术部需要一个文件服务器,用于存放常用的软件工具,所有人都可以访问,但是只有技术部可以写入
3、每个人都可以进入自己的独立家目录,别人不可以访问。

配置:

要求一
[root@localhost ~]# vim /etc/samba/smb.conf
//再此文件最后添加如下命令
[share]path = /sharepublic = yes  //指定共享目录是否允许guest账户访问comment = filewritable = yes
[root@localhost ~]# mkdir /share
[root@localhost ~]# ll -d /share
drwxr-xr-x. 2 root root 6 Mar 18 05:18 /share
[root@localhost ~]# chmod 757 /share   //为目录增加写入权限
[root@localhost ~]# ll -d /share
drwxr-xrwx. 2 root root 6 Mar 18 05:18 /share
[root@localhost ~]# chmod o+t /share  //设置特殊权限,不允许删除和修改其他人的权限
[root@localhost ~]# ll -d /share
drwxr-xrwt. 2 root root 6 Mar 18 05:18 /share
[root@localhost ~]# touch /share/{a,b,c}
[root@localhost ~]# ll /share
total 0
-rw-r--r--. 1 root root 0 Mar 18 05:52 a
-rw-r--r--. 1 root root 0 Mar 18 05:52 b
-rw-r--r--. 1 root root 0 Mar 18 05:52 c
[root@localhost ~]# su - aaa
[aaa@localhost ~]$ touch /share/111        //aaa用户创建文件
[aaa@localhost ~]$ exit
logout
[root@localhost ~]# ll /share
total 0
-rw-rw-r--. 1 aaa  aaa  0 Mar 18 05:53 111
-rw-r--r--. 1 root root 0 Mar 18 05:52 a
-rw-r--r--. 1 root root 0 Mar 18 05:52 b
-rw-r--r--. 1 root root 0 Mar 18 05:52 c
[root@localhost ~]# su - bbb
[bbb@localhost ~]$ ll /share
total 0
-rw-rw-r--. 1 aaa  aaa  0 Mar 18 05:53 111
-rw-r--r--. 1 root root 0 Mar 18 05:52 a
-rw-r--r--. 1 root root 0 Mar 18 05:52 b
-rw-r--r--. 1 root root 0 Mar 18 05:52 c
[bbb@localhost ~]$ rm /share/111       //bbb用户不能删除别人的文件,只可以删除自己的
rm: remove write-protected regular empty file ‘/share/111’? y
rm: cannot remove ‘/share/111’: Operation not permitted

windows下也是不能删除别人的文件的

要求二
[root@localhost ~]# vim /etc/samba/smb.conf
//再此文件最后添加如下命令
[soft]path = /softpublic = yescomment = softwrite list = @jishubu  //表示技术部组的人可以写添加技术部组将用户加入组,并将用户改为samba用户
[root@localhost ~]# mkdir /soft
[root@localhost ~]# touch /soft/{a,b,c}
[root@localhost ~]# ll /soft
total 0
-rw-r--r--. 1 root root 0 Mar 18 06:14 a
-rw-r--r--. 1 root root 0 Mar 18 06:14 b
-rw-r--r--. 1 root root 0 Mar 18 06:14 c
[root@localhost ~]# groupadd jishubu
[root@localhost ~]# gpasswd -M bbb,ccc jishubu //将bbb,ccc用户添加至jishubu组
[root@localhost ~]# ll -d /soft
drwxr-xr-x. 2 root root 30 Mar 18 06:14 /soft
[root@localhost ~]# setfacl -m g:jishubu:rwx /soft //只允许技术部的人写入,设置扩展权限
//也可以将/soft目录的所属组更改为jishubu组,在为/soft目录增加写权限
[root@localhost ~]# ll -d /soft
drwxrwxr-x+ 2 root root 30 Mar 18 06:14 /soft
[root@localhost ~]# systemctl restart smb nmb

通过windows验证
先登录aaa用户,对soft目录无权限

删除登录信息,再登录bbb,或者ccc用户上传文件

要求三
//此要求的配置,主配置文件中已经写出

以上是从windows主机测试SAMBA

接下来我们从LINUX客户端测试SAMBA服务

客户端配置

[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# yum install samba-client -y
[root@localhost ~]# smbclient -L //172.24.8.130 -U aaa    //通过用户aaa登录,查看共享出去的目录
Enter aaa's password:
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]Sharename       Type      Comment---------       ----      -------public          Disk      fileshare           Disk      file         //共享出去的目录soft            Disk      soft         //共享出去的目录IPC$            IPC       IPC Service (Samba Server Version 4.2.3)aaa             Disk      Home Directories //共享出去的目录
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]Server               Comment---------            -------LOCALHOST            Samba Server Version 4.2.3Workgroup            Master---------            -------MYGROUP              LOCALHOSTWORKGROUP            LAPTOP-M6SL5P3I
[root@localhost ~]# smbclient //172.24.8.130/public -U aaa      //登录使用/public目录里的东西
Enter aaa's password:
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: \>
smb: \>
smb: \> ls.                                   D        0  Mon Mar 18 16:17:48 2019..                                 DR        0  Mon Mar 18 17:18:23 20191                                   N        0  Mon Mar 18 16:17:48 20192                                   N        0  Mon Mar 18 16:17:48 20193                                   N        0  Mon Mar 18 16:17:48 201920469760 blocks of size 1024. 16741028 blocks available
smb: \> put /haha        //上传文件
putting file /haha as \/haha (0.0 kb/s) (average 0.0 kb/s)
smb: \> exit

可以挂载使用资源
[root@localhost ~]# mount //172.24.8.130/public /aaa -o username=aaa,password=redhat  手动挂载

[root@localhost ~]# vim /etc/fstab
再最后一行加上
//172.24.8.130/public /aaa cifs defaults,username=aaa,password=redhat 0 0  自动挂载

Multiuser机制(多用户机制)

Multiuser机制

所需软件包:cifs-utils
手动挂载:mount //服务器地址/共享名 挂载点
开机挂载配置/etc/fstab://服务器地址/共享名 挂载点 cifs _netdev 0 0
_netdev:网络设备(请启动完成网络服务,再进行挂载此设备)
cifs: samba使用的文件系统是cifs

Samba的multiuser挂载技术
  1. 管理员只需作一次挂载
  2. 客户端在访问挂载点时,若需不同权限,可以临时切换为新的共享用户(无需重新挂载)。
  3. 挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
  4. 在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
  5. 为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。
    /etc/fstab挂载参数:
    //服务器地址/共享名 /挂载点 cifs username=用户名,password=密码,multiuser,sec=ntlmssp,_netdev 0 0
实现方式
  1. 挂载smb共享时启用multiuser支持;
  2. 使用cifscreds临时切换身份
挂载参数
  1. multiuser,提供对客户端多个用户身份的区分支持
  2. sec=ntlmssp,提供NT局域网管理安全支持
    多用户挂载参数:multiuser,sec=ntlmssp,_netdev
    客户机多用户测试,切换共享用户身份
  3. 在客户端以普通用户登入 :#su - 普通用户
  4. 使用cifscreds提交新的用户凭据并测试:
    cifscreds add|update -u 共享用户名 服务器地址
多用户挂载

再服务器上通过SMB共享目录/devops,并满足以下要求
1、共享名为devops
2、共享目录devops只能被192.168.171.0网段中的客户端使用
3、共享目录devops必须可以被浏览
4、用户xixi必须能以读的方式访问此共享,访问密码是xixi
5、用户maomao必须能以读写的方式访问此共享,访问密码是maomao
此共享永久挂载在192.168.171.144上的/mnt/dev/目录,并使用用户xixi作为认证任何用户可以通过用户maomao来临时获取写的权限
服务端:

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# setfacl -m u:maomao:rwx /devops/
[root@localhost ~]# mkdir /devops
[root@localhost ~]# touch /devops/{1,2,3}
[root@localhost ~]# vim /etc/samba/smb.conf
//在本文件最后添上以下内容
[devops]path = /devopshosts all =172.24.8.browseable = yeswritable = nowrite list =maomao[root@localhost ~]# useradd xixi
[root@localhost ~]# useradd maomao
[root@localhost ~]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.
[root@localhost ~]# smbpasswd -a maomao
New SMB password:
Retype new SMB password:
Added user maomao.
[root@localhost ~]# systemctl restart smb nmb

客户端:

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# yum install cifs-* -y
[root@localhost ~]# umount /mnt
[root@localhost ~]# mkdir /mnt/dev
[root@localhost ~]# smbclient -L //172.24.8.130/ -U xixi
Enter xixi's password:
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]Sharename       Type      Comment---------       ----      -------public          Disk      fileshare           Disk      filesoft            Disk      softdevops          Disk      IPC$            IPC       IPC Service (Samba Server Version 4.2.3)xixi            Disk      Home Directories
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]Server               Comment---------            -------LOCALHOST            Samba Server Version 4.2.3Workgroup            Master---------            -------MYGROUP              LOCALHOSTWORKGROUP            LAPTOP-M6SL5P3I
[root@localhost ~]# vim /etc/fstab
//在此文件最后添加
/ /172.24.8.130/devops   /mnt/dev        cifs    defaults,username=xixi,password=redhat,multiuser,sec=ntlmssp    0 0
[root@localhost ~]# mount -a   //挂载
[root@localhost ~]# mount  //查看有没有挂载上
/ /172.24.8.130/devops on /mnt/dev type cifs (rw,relatime,vers=1.0,sec=ntlmssp,cache=strict,multiuser,domain=LOCALHOST,uid=0,noforceuid,gid=0,noforcegid,addr=172.24.8.130,unix,posixpaths,serverino,acl,noperm,rsize=1048576,wsize=65536,actimeo=1)  //可以看出,已经挂载上

验证多用户挂载

[root@localhost ~]# useradd xixi
[root@localhost ~]# useradd maomao
[root@localhost ~]# su - xixi
[xixi@localhost ~]$ cd /mnt/dev
[xixi@localhost dev]$ ls
ls: reading directory .: Permission denied
[xixi@localhost dev]$ cifscreds add 172.24.8.130   //提权
Password:
[xixi@localhost dev]$ ll
total 0
-rw-r--r--. 1 root root 0 Apr 10 12:02 1
-rw-r--r--. 1 root root 0 Apr 10 12:02 2
-rw-r--r--. 1 root root 0 Apr 10 12:02 3
[xixi@localhost dev]$ touch xixi
touch: cannot touch ‘xixi’: Permission denied[xixi@localhost dev]$ exit
logout
[root@localhost ~]# su - maomao
[maomao@localhost ~]$ cd /mnt/dev
[maomao@localhost dev]$ ls
ls: reading directory .: Permission denied
[maomao@localhost dev]$ cifscreds add 172.24.8.130     //提权
Password:
[maomao@localhost dev]$ ll
total 0
-rw-r--r--. 1 root root 0 Apr 10 12:02 1
-rw-r--r--. 1 root root 0 Apr 10 12:02 2
-rw-r--r--. 1 root root 0 Apr 10 12:02 3
[maomao@localhost dev]$ touch maomao
[maomao@localhost dev]$ ll
total 0
-rw-r--r--. 1 root root 0 Apr 10 12:02 1
-rw-r--r--. 1 root root 0 Apr 10 12:02 2
-rw-r--r--. 1 root root 0 Apr 10 12:02 3
-rw-r--r--. 1 1005 1006 0 Apr 10 12:04 maomao

linux下的SAMBA服务------SMB协议相关推荐

  1. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

  2. Samba服务---SMB协议

    Samba服务-SMB协议 在windows当中我们最常见的就是网上邻居可以看到同一互联网上连接的所有用户 在服务器端,linux与window Server相比的稳定性,安全性执行效率以及性价比都是 ...

  3. 介绍一下linux下的samba服务

    介绍一下linux下的samba服务 实验环境 VMware 6.5.2 +redhat Enterprise 5 AS 我的内核版本 上面两个是windows server 2003 共享文件时的画 ...

  4. 【Linux常用服务器配置——Samba服务】

    目录 1.简介 2.Samba的服务组成 3.安装samba服务 4.查看安装状况 5.设置开机自启动 6.启动服务 7.查看samba服务进程 8.防火墙设置 9.修改主配置文件 10.建立共享目录 ...

  5. Linux下使用samba工具共享文件

    Linux下使用samba工具共享文件 前期准备: 挂载光盘,安装samba 安装共享的软件 yum install Samba linux 开启smb服务 service smb start 可以设 ...

  6. 学习笔记----linux下编译samba

    linux下编译samba   一.samba的启动命令:        #cd /usr/local/samba/sbin        #smbd     关闭samba可以杀死smbd进程   ...

  7. linux 下通过 httpd服务创建网页

    linux 下通过 httpd服务创建网页 1.安装httpd服务 yum install httpd -y [root@node143 ~]# yum install httpd -y 2.查看防火 ...

  8. Linux系统终止httpd服务,【转】Linux下apache/httpd服务启动与停止

    apache服务,或者说httpd服务,如何启动,如何开机启动. 转来转去,找不到原文.. 操作系统环境:红帽5,具体如下: # uname -a Linux machine1 2.6.18-164. ...

  9. Linux实验5 Samba 服务配置实验实验报告(部分英文)

    实验题目 实验5 Linux实验5   Samba 服务配置实验实验报告  Samba 服务配置实验 实验目的 (1) Master the configuration of Samba server ...

最新文章

  1. R语言apriori算法进行关联规则挖掘(限制规则的左侧或者右侧的内容进行具体规则挖掘)、查看限制了规则的右侧之后挖掘到的规则(置信度排序,只查看左侧即可)
  2. 【Android基础】趣谈Intent
  3. Opencv笔记(九)——图像阈值
  4. spark读取hbase数据
  5. 极简_Gradle多Module项目组建
  6. 什么是API文档?--斯科特·马文
  7. 基于php的外卖订餐系统开题报告_石化二小参加区2020省市级现代教育技术课题研究开题会议...
  8. SAP系统企业内部安全审计介绍
  9. CSDN 创始人蒋涛:拥抱中国开源技术生态发展黄金十年
  10. h5 语音识别_h5 在线语音识别接口_html5 语音识别 - 云+社区 - 腾讯云
  11. Linux之SDL2+OpenGL+EGL绘制(十六)
  12. 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
  13. SNMP网络管理协议
  14. 三菱plc pwm指令_三菱PLC高速处理指令编程(新手教学)
  15. 几个不知道算不算经典的游戏
  16. 【六种解决思路尝试】VMware Workstation 无法连接到虚拟机。
  17. FPGA之乒乓Buffer
  18. 对本课程的期望以及教学建议
  19. 使用selenium爬取唯品会
  20. 阵列信号处理仿真二——波束方向图的绘制

热门文章

  1. HTML基础(四)常用的内联元素
  2. u盘启动盘恢复计算机,U盘启动盘怎么恢复正常普通U盘?
  3. TCP 短链接 和 长链接
  4. QGIS噱头笔记--(1)QGIS概要了解
  5. 监狱筹建牌竖近2年 未告知民众关押病犯遭质疑
  6. Access to XMLHttpRequest at ‘file:///D:/xx/xxx.json‘ from origin ‘null‘ has been blocked by CORS问题解决
  7. Vue:如何制作表格数据分页查询
  8. FTP传输大文件丢包损坏严重,怎么解决?
  9. COF多孔复合材料3D-KSC-COFs/ZnO-CdS-Co-Fe2O4/COF-PS-GMA/MW-CNTs-TpPa-COF
  10. 情若人间诗词主角夏当午萧楚河by丫妖炎炎全文免费在线阅读