1. 简介

1.1. 背景:case is initiative by 某windows无良人事,需求是需要一整块4T的硬盘,由于ESXi5最大支持一块盘是2T大小,而且不可以使用windows动态卷组和裸设备(由于是无良人士,给出的理由自然无良,请不要深究)。决定使用Linux的samba对在本地使用xfs的卷组做网盘映射。正好马哥架构师培训的作业里也有一个关于samba的作业,一起搞定。

1.2. smb:service message block

cifs:common internet file system

1.3. 功能:

文件系统共享:

打印机共享:

NetBIOS协议:

2. 版本

2.1. OS: CentOS Linux release 7.2.1511 (Core)

2.2. kernel: 3.10.0-327.36.2.el7.x86_64

2.3. samba: 4.4.4-12.el7_3

3. 安装

3.1. OS(略)

3.2 samba:

没啥好说的,直接yum装

yum install samba -y

  

装了好多的包

===============================================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================================
Installing:
samba x86_64 4.4.4-12.el7_3 updates 610 k
Installing for dependencies:
libkadm5 x86_64 1.14.1-27.el7_3 updates 173 k
libldb x86_64 1.1.26-1.el7 base 125 k
libtalloc x86_64 2.1.6-1.el7 base 34 k
libtdb x86_64 1.3.8-1.el7_2 base 45 k
libtevent x86_64 0.9.28-1.el7 base 34 k
libwbclient x86_64 4.4.4-12.el7_3 updates 100 k
pytalloc x86_64 2.1.6-1.el7 base 15 k
samba-client-libs x86_64 4.4.4-12.el7_3 updates 4.6 M
samba-common noarch 4.4.4-12.el7_3 updates 191 k
samba-common-libs x86_64 4.4.4-12.el7_3 updates 161 k
samba-common-tools x86_64 4.4.4-12.el7_3 updates 451 k
samba-libs x86_64 4.4.4-12.el7_3 updates 260 k
Updating for dependencies:
krb5-devel x86_64 1.14.1-27.el7_3 updates 651 k
krb5-libs x86_64 1.14.1-27.el7_3 updates 740 k Transaction Summary
===============================================================================================================================================================================================

  

3.3. 程序包与服务详解

3.3.1. 服务器程序包:samba

nmbd:NetBIOS name server,主要用来给windows共享

smbd:SMB/CIFS services

systemd unit file:nmb.service/smb.service

/etc/samba/smb.conf:主配置文件

  全局配置:[global]

        workgroup = :当前samba主机所属工作组

        netbios name = :当前samba主机的netbios名称

        server string = :主机注释

        display charset =:当前samba服务所用字符集

        unix charset =:当前Linux主机所用的字符集

        dos charset =:Windows端的字符集

        interfaces =:samba服务监听的IP地址或网络接口

        host allow =:客户端来源白名单

        log file =:日志文件位置(%m表示记录客户端的IP地址)

        max log size =:每个日志文件的大小

        #Standalone Server Options

        security =:设定安全级别

          #取值为以下三者之一

          #share(匿名共享)

          #user(使用SAMBA服务自我管理的账号和密码进行用户认证;用户必须是OS用户,但密码为samba服务专用密码)

          #domain(使用DC进行用户认证)

        passwd backend = tdbsam 密码库文件的格式;

  每个共享的专用配置:

    [共享名称]:此即为某共享的服务名

      comment:注释信息

      path:此共享对应本地文件系统路径

      browseable:是否可浏览,是否可被所有用户看到;

      writeable;是否可写,不可以与writelist同时使用

      read only:是否为只读

      writelist:可写用户或组列表

        用户名

        @用户组

        +组名

      public:是否是公开的服务

      guest ok:是否允许来宾账号访问

  可用的宏列表(定义在配置文件中的变量):

    %m:客户端主机的NetBIOS名称;

    %M:客户端的Internet主机名,即HOSTNAME;

    %H:当前用户的家目录

    %U:当前用户的用户名

    %g:当前用户所属的组名

    %h:当前SAMBA主机的HOSTNAME;

    %I:客户端主机IP;

    %T:当前的日期时间;

3.3.2. 监听的端口:137/udp,138/udp,139/tcp,139/tcp,445/tcp

3.3.3. 配置文件测试工具testparm

3.3.4. 用户管理工具smbpasswd

    smbpasswd [option] USERNAME

      -a:添加

      -x:删除

      -d:禁用

      -e:启用

3.3.5. 访问samba共享

Linux:

  smbclient:交互式命令行客户端;

    # smbclient -L SAMBA_SERVER -U USERNAME

    # smbclient //SAMBA_SERVER/SERVICE_NAME -U USERNAME

  mount -t cifs:挂载文件系统

    # mount -t cifs -o username=USERNAME,password=PASSWORD //SAMBA_SERVER/SHARED /MOUNT_POINT

Windows:

  \\HOST OR IP\SHARED_DIR

3.3.6. 管理samba用户:pdbedit

  pdbedit [options]

    -L:列出所有的smb用户;

      -v:verbose

    -a:添加用户

      -u USERNAME

    -x:删除指定用户

    -r:修改用户的相关信息

3.3.7. samba服务的状态:smbstatus

    -b:显示简要格式信息

    -v:显示详细格式信息

4. 配置

4.1. 配置两块盘为一个本地的卷组

两块盘

创建卷组vg_samba

创建逻辑卷lv_samba,把空间都用上

格式化文件系统为xfs,然后挂在/data_samba上

如果需要开启启动,请记得systemctl enable smb.service,并且在/etc/fstab中把要共享的文件系统写进去,过程略。

4.2. 以作业为例题,要求如下:

建立samba共享,共享目录为/data_samba,要求:(描述完整的过程)

1)共享名为shared,工作组为magedu;

2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;

3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;

4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;

5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

添加samba用户(samba用户必须为系统用户):

4.3. 增加共享资源,修改/etc/smb.conf

[shared]
comment = shared
workgroup = magedu
path = /data_samba
browseable = yes
guest ok = yes
write list = @develop
allow host = 172.16.0.0/16

  

4.4. 添加各种用户和组

#添加用户和组
[root@hccwhuatnginx01 yum.repos.d]# useradd gentoo
[root@hccwhuatnginx01 yum.repos.d]# useradd centos
[root@hccwhuatnginx01 yum.repos.d]# useradd ubuntu
[root@hccwhuatnginx01 yum.repos.d]# groupadd develop
#添加用户到组
[root@hccwhuatnginx01 yum.repos.d]# gpasswd -a centos develop
Adding user centos to group develop
[root@hccwhuatnginx01 yum.repos.d]# gpasswd -a ubuntu develop
Adding user ubuntu to group develop
#修改用户密码
[root@hccwhuatnginx01 yum.repos.d]# echo "gentoo"|passwd --stdin gentoo
Changing password for user gentoo.
passwd: all authentication tokens updated successfully.
[root@hccwhuatnginx01 yum.repos.d]# echo "centos"|passwd --stdin centos
Changing password for user centos.
passwd: all authentication tokens updated successfully.
[root@hccwhuatnginx01 yum.repos.d]# echo "ubuntu"|passwd --stdin ubuntu
Changing password for user ubuntu.
passwd: all authentication tokens updated successfully.
#修改用户samba密码
[root@hccwhuatnginx01 yum.repos.d]# smbpasswd -a gentoo
New SMB password:
Retype new SMB password:
Added user gentoo.
[root@hccwhuatnginx01 yum.repos.d]# smbpasswd -a centos
New SMB password:
Retype new SMB password:
Added user centos.
[root@hccwhuatnginx01 yum.repos.d]# smbpasswd -a ubuntu
New SMB password:
Retype new SMB password:
Added user ubuntu.

  

4.5 最后记得修改文件夹的权限

[root@hccwhuatnginx01 /]# chown :develop /data_samba/
[root@hccwhuatnginx01 /]# chmod g+w /data_samba/
[root@hccwhuatnginx01 /]#

  

【Linux】【Services】【NetFileSystem】Samba的更多相关文章

  1. 【Linux&Unix--open/close/write/read系统调用】

    个人学习整理.如有不足之处,请不吝不吝赐教. 转载请注明:@CSU-Max 系列博文:      Linux&Unix学习第一弹 -- 文件描写叙述符与权限  Linux&Unix学习 ...

  2. 【linux之设备,分区,文件系统】

    一.设备 IDE磁盘的设备文件采用/dev/hdx来命名,分区则采用/dev/hdxy来命名,其中x表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推), y代表分区的号码(由1开始,..3以此类推) ...

  3. 【linux之挂载,Raid,LVM】

    一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...

  4. 【linux之进程管理,系统监控】

    一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R ...

  5. 【Linux磁盘优化管理--RAID和LVM】

    在现阶段的企业环境中,为了数据的安全性及完整性必须要有一个合理的存储方案.面对着每秒可能产生超过几TB的数据,考虑到磁盘能不能实现 热冗余,及扩容,缩容.Linux给出了RAID(磁盘阵列)以及LVM ...

  6. 【Linux 内核网络协议栈源码剖析】网络栈主要结构介绍(socket、sock、sk_buff,etc)

    原文:http://blog.csdn.net/wenqian1991/article/details/46700177 通过前面的分析,可以发现,网络协议栈中的数据处理,都是基于各类结构体,所有有关 ...

  7. 【linux之链接,函数,随机数】

    一.链接 硬链接(hard link):同一个文件使用了多个别名.新建文件是已经存在的一个别名,,当原文件删除时,新建的文件仍然可以使用.硬链接和原来的文件没有什么区别,而且共享一个inode号.通过 ...

  8. 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

    额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...

  9. 5.2【Linux 内核网络协议栈源码剖析】socket 函数剖析 ☆☆☆

    深度剖析网络协议栈中的 socket 函数,可以说是把前面介绍的串联起来,将网络协议栈各层关联起来. 应用层 FTP SMTP HTTP ... 传输层 TCP UDP 网络层 IP ICMP ARP ...

  10. 【Linux下安装使用virtualenv与virtualenvwrapper】

    virtualenv virtualenv是一个可以帮助我们管理不同Python环境的绝好工具. virtualenv是一个可以在系统中建立多个不同且相互不干扰的虚拟环境. 下面的步骤将创建两个独立的 ...

随机推荐

  1. 设计模式学习-使用go实现桥接模式

    桥接模式 前言 定义 优点 缺点 应用场景 代码实现 参考 桥接模式 前言 桥接模式的代码实现非常简单,但是理解起来稍微有点难度,并且应用场景也比较局限,所以,相当于代理模式来说,桥接模式在实际的项目 ...

  2. JAVA POI导出EXCEL 动态表头、多级表头、动态数据

    导出Excel文件是业务中经常遇到的需求,以下是经常遇到的一些问题: 1,导出中文文件名乱码 String filename = "sheet1";response.setChar ...

  3. Intellij IDEA 配置Junit

    导包: 1.Hamcrest Core 包:    https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core/1.3 2.Junit包 ...

  4. 大一C语言学习笔记(9)---指针篇--从”内存的使用“和“流程控制”的角度来理解“指针变量的使用‘

    #深入理解指针变量 举个错误栗子: //以下代码的目的是输出100和1000,但输出结果只有一个100 #include<stdio.h> #include<malloc.h> ...

  5. pytest-mian函数运行

    1.设置多并发运行 1.命令行安装 pip install pytest-xdist #安装插件,进行多并发运行,#调用:-n -5 import pytest # pytest.main([&quo ...

  6. opa gatekeeper笔记:AdmissionReview input.request请求对象结构

    官方:https://v1-17.docs.kubernetes.io/zh/docs/reference/access-authn-authz/extensible-admission-contro ...

  7. 15-Transfer Learning

    介绍 迁移学习指的就是,假设你手上有一些跟你现在要进行的task没有直接相关的data,那你能不能用这些没有直接相关的data来帮助我们做一些什么事情.比如说:你现在做的是猫跟狗的classifer, ...

  8. Hadoop集群 增加节点/增加磁盘

    在虚拟机中新建一个机器. 设置静态IP 将修改/etc/hosts 192.168.102.10 master 192.168.102.11 slave-1 192.168.102.12 slave- ...

  9. [atAGC050A]AtCoder Jumper

    考虑二叉树的结构,但并不容易构造从叶子返回的边 (以下为了方便,将所有点编号为$[0,n)$) 对于$i$,选择$2i\ mod\ n$和$(2i+1)\ mod\ n$这两条出边 从二叉树的角度并不 ...

  10. [bzoj1089]严格n元树

    设f[i]表示深度不超过i的方案数,那么有f[0]=1,$f[i]=f[i-1]^{n}+1$,然后用高精度即可(注意深度恰好为d还要用f[d]-f[d-1]才是答案) 1 #include<b ...