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. Cookie、Session、localStorage、sessionStorage区别和用法

    Cookie 在学习一个新知识点前,我们应该明白自己的学习目标,要带着疑问去学习,该小节须要了解 Cookies 什么是cookie,cookie的作用 cookie的工作机制,即cookie是运作流 ...

  2. 02 | 顶层对象和global对象

    顶层对象的属性 顶层对象,在浏览器环境指的是window对象,在Node指的是global对象.ES5之中,顶层对象的属性与全局变量是等价的. window.a = 1; a // 1 a = 2; ...

  3. LeetCode 114. 二叉树展开为链表 C++

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  4. Unity——技能系统(三)

    Unity技能系统(三) Unity技能系统(一) Unity技能系统(二) Demo展示 六.Buff系统 buff分为增益和减益buff,应该区分开来: /// <summary> / ...

  5. F5 BIG-IP 远程代码执行RCE(CVE-2020-5902)复现

    漏洞简介 F5 BIG-IP 是美国``F5公司一款集成流量管理.DNS.出入站规则.web应用防火墙.web网关.负载均衡等功能的应用交付平台. 在F5 BIG-IP产品的流量管理用户页面 (TMU ...

  6. spring boot+vue实现H5聊天室客服功能

    spring boot+vue实现H5聊天室客服功能 h5效果图 vue效果图 功能实现 spring boot + webSocket 实现 官方地址 https://docs.spring.io/ ...

  7. 我罗斯方块最终篇(Block类)

    负责的任务 完善Block类的相关函数及变量: 对Block类中函数进行调整改进,并于其他人负责的类相互配合: 对Block类的函数功能进行调试: github项目地址. 效果图 具体可见总篇,一下仅 ...

  8. IDEA 运行maven工程报错:No goals have been specified for this build.....解决办法

    出现这种错误可以在pom.xml里配置, 找到<build>标签在下面<plugins>标签上面加上<defaultGoal>compile</default ...

  9. [atAGC054D]ox

    对于两个字符串$s$和$t$(保证其中每一种字符个数相同),定义$s$和$t$的相对逆序对数为$s$得到$t$的最少交换次数,显然同种字符相对顺序保持不变,因此即依次编号后的逆序对数 问题不妨看作构造 ...

  10. [atAGC046E]Permutation Cover

    每一个点都在一个排列中等价于所有排列覆盖所有位置 有解当且仅当满足$a_{y}\le 2a_{x}$(其中$a_{x}$为$a_{i}$的最小值,$a_{y}$为$a_{i}$的最大值) 证明:贪心选 ...