说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建SABMA服务的参考。

注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的。

如果需要查看相关软件版本和主机配置要求,请根据目录自行查看。



Linux服务综合搭建的文章目录

====================================================

Linux基础服务搭建综合

1、foundation创建yum仓库

2、部署DNS

3、将YUM源通过httpd发布出来

4、rhel7主机安装JDK

5、foundation通过Rsyslog搭建集中日志服务器

6、foundation LAMP环境搭建

7、foundation搭建NFS服务

8、rhel7 JAVA web环境搭建(使用Tomcat8整合httpd)

9、foundation自建CA实现HTTPS

10、foundation配置kerberos和NTP服务以及安全的NFS挂载

11、foundation提供SAMBA服务

12、rhel7 配置软ISCSI存储

13
rhel7主机配置端口转发和地址伪装

====================================================

主机角色说明

11、foundation提供SAMBA服务

UNC路径:SAMBA要使用UNC路径书写资源

UNC(Universal Naming Convention)通用命名规则,也叫通用命名规范、通用命名约定。 网络(主要指局域网)上资源的完整名称。

它符合\\servername\sharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。

目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:\\servername\sharename\directory\filename。

unc共享就是指网络硬盘的共享

我们熟悉的命令行访问法访问网上邻居,实际上应该称作UNC路径访问法。

11.1 安装软件包

搭建SAMBA服务需要在服务端安装samba和samba-client(安装了它可以使用sbmpasswd命令创建SAMBA用户)两个包,在客户端需要安装samba-client包。

1 [root@foundation ~]# yum install samba samba-client

11.2 配置SAMBA共享

11.2.1 准备共享目录

SAMBA除了自己的用户权限控制外还要依赖系统本地的用户权限控制,所有要想谁能访问首先要做好本地的权限控制。

1 [root@foundation ~]# mkdir /smbshare/sambashare -p
2 [root@foundation /]# chown :mei /smbshare/sambashare
3 [root@foundation ~]# chmod -R 2775 /smbshare/sambashare
4 [root@foundation ~]# echo "samba share test."> /smbshare/sambashare/test.txt

11.2.2 设置SELinux

1 [root@foundation ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
2 [root@foundation ~]# restorecon -FRv /smbshare/

注意

Samba还可以提供使用SELinux 类型 public_content_t (只读)和public_content_rw_t (读写)标记的文件。

要允许对标记为public_content_rw_t的文件和目录进行读写访问,必须还要启用SELinux布尔值smba-anon-write。

11.2.3 编辑配置文件

[root@foundation ~]# grep -v -E "^$|#|;" /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775
[sambashare] #共享名称
path = //smbshare/sambashare #实际路径
write list = @mei # writable为no时,用它控制可写用户是哪些,@开头表示是一个用户组
browseable = yes #所有用户可浏览
#writable = yes 默认是no,表示所有用户都可以写

11.2.4 准备SAMBA用户

[root@foundation ~]# useradd -s /sbin/nologin mei
[root@foundation ~]# useradd -G mei -s /sbin/nologin tom
[root@foundation ~]# useradd -s /sbin/nologin danny
设不设置密码都无所谓 将用户添加进SAMBA自己的数据库
[root@foundation ~]# smbpasswd -a mei
New SMB password:
Retype new SMB password:
Added user mei.
[root@foundation ~]# smbpasswd -a tom
New SMB password:
Retype new SMB password:
Added user tom.
[root@foundation ~]# smbpasswd -a danny
New SMB password:
Retype new SMB password:
Added user danny.
[root@foundation ~]#

11.3 启动服务并配置防火墙

1 [root@foundation ~]# systemctl enable smb nmb
2 [root@foundation ~]# systemctl restart smb nmb
3 [root@foundation ~]# firewall-cmd --permanent --add-service=samba
4 [root@foundation ~]# firewall-cmd --reload

11.4 客户端测试(多用户挂载)

这里我们使用rhel7主机来测试

11.4.1 安装软件包

1 [root@rhel7 ~]# yum install samba-client
2 [root@rhel7 ~]# yum install cifs-utils #默认不支持samba,所以安装文件系统clifs
3 samba的文件系统类型为cifs

11.4.2 创建挂载点

1 [root@rhel7 ~]# mkdir /smbmnt
2 [root@rhel7 ~]# chown :mei /smbmnt/
3 [root@rhel7 /]# chmod -R 2775 /smbmnt/

11.4.3 准备SAMBA用户

注意,客户端必须要实现多用户挂载,必须在存在和服务端相同用户名的用户,

用户组关系可以不一致,而且要有登录shell,如果没有,不便于我们切换用户测试权限是否正确。

 1 [root@rhel7 ~]# useradd mei && echo "test" |passwd --stdin mei
2 Changing password for user mei.
3 passwd: all authentication tokens updated successfully.
4 [root@rhel7 ~]# useradd tom && echo "test" |passwd --stdin tom
5 Changing password for user tom.
6 passwd: all authentication tokens updated successfully.
7 [root@rhel7 ~]# useradd danny && echo "test" |passwd --stdin danny
8 Changing password for user danny.
9 passwd: all authentication tokens updated successfully.
10 [root@rhel7 ~]#

11.4.5 持久挂载和用户单独挂载

SAMBA挂载时可以credentials指定认证文件。如果认证文件中有多组username和password,挂载时将使用最后一组,所以写很多组也没用。

先准备SAMBA用户密码登录认证文件(默认是文件,也可以是数据库),注意密码是服务端smbpasswd创建SAMBA用户时的密码。

格式为:注意,不要有空格

username=用户名

password=密码

注意,如果像下面这样写多组username和password,挂载时将使用最后一组。

编辑/etc/fstab文件,添加如下内容

//foundation.mei.com/sambashare /smbmnt cifs credentials=/root/smbpasswd.txt,multiuser,sec=ntlmssp 0 0

[root@rhel7 ~]# mount -a

权限测试

1 #先切换用户,这也是为什么之前在客户端创建用户时要提供登录shell的原因
2 [root@rhel7 smbmnt]# su - tom
3 [tom@rhel7 ~]$ cifscreds add foundation.mei.com #手动切换SAMBA登录用户

1、根据我们之前的配置,默认使用的是最后一组用户名和密码挂载,即使用mei用户挂载,现在我们用mei用户测试读写权限发现能够正常读写。

在服务端foundation上主机查看权限如下

2、手动切换到tom用户进行访问,注意tom是mei组(注意这里的组是指在服务端的组,

为了加以区别我们特意在客户端创建用户时没有把tom加入到mei组中。)中的用户,也能正常读写。

在服务端foundation上主机查看权限如下

3、手动切换到danny用户进行访问,注意danny不是是mei组中的用户我们也没有给他写的权限,所以只能浏览不能写入。

4、在Windows客户端测试

最后希望大家提意见、转发、评论和交流!!!

搭建SAMBA服务的更多相关文章

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

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

  2. 笔记 : win8系统中的VM虚拟机的Ubuntu搭建samba服务

    1. 环境准备 (此处使用root超级管理员帐户,执行命令时不用加sudo, 普通帐户需要前面加sudo):  (1)安装好Ubutun虚拟系统后,Ubuntu 的软件源配置文件是 /etc/apt/ ...

  3. 如何搭建samba服务?

    为了日后便于查询,本文所涉及到的所有命令集合如下: chkconfig iptables off #关闭防火墙命令 在Centos7中使用的是chkconfig firewalld off seten ...

  4. CentOS6.5下搭建Samba服务实现与Windows系统之间共享文件资源

    FTP文件传输服务确实可以让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件,而非共享文件,因此要想通过客户端直接在服务器上修改文件内容还是一件比较麻烦的事情. 1987年,微软公司和英 ...

  5. ubuntu系统搭建samba服务

    安装samba服务 # apt-get install samba 创建一个samba服务的分享目录 # mkdir /share 创建一个samba服务限制的用户及组 #useradd public ...

  6. Linux_搭建Samba服务(认证访问)

    [RHEL8]-SMBserver:[RHEL7]-SMBclient !!!测试环境我们首关闭防火墙和selinux(SMBserver和SMBclient都需要) [root@localhost ...

  7. Linux_搭建Samba服务(匿名访问)

    [RHEL8]-SMBserver:[RHEL7]-SMBclient !!!测试环境我们首关闭防火墙和selinux(SMBserver和SMBclient都需要) [root@localhost ...

  8. Centos6搭建Samba服务并使用Windows挂载

    一.安装相关软件 [root@mail ~]# yum install samba samba-client -y #安装相关软件 二.配置匿名访问 [root@mail ~]# cd /etc/sa ...

  9. samba服务搭建及管理

    关闭防火墙 # /etc/init.d/iptables stop # chkconfig --level iptables off 关闭SELINUX # vim /etc/sysconfig/se ...

随机推荐

  1. 深入 Go 中各个高性能 JSON 解析库

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/535 其实本来我是没打算去看 JSON 库的性能问题的,但是最近我对 ...

  2. ES6中的数组方法扩展

    上一篇文章小编简单介绍了在ES6中,一些常用的方法和一些简单的应用,在这篇文章中,小编将针对ES6中数组常用方法进行扩展,相信经过这篇文章之后,每一位小伙伴下班时间会有所提前,就算从原来的996变成9 ...

  3. 性能分析之用户数(线程数)/响应时间/TPS的关系

    最近在写一些东西的时候,把一些内容整理了一下. 在考虑压力工具中的用户数(有些工具中称为线程数,本文后续都用"用户数"来说明).响应时间.TPS三者之间的关系时,想到之前也有人问起 ...

  4. php 安装 yii 报错: phpunit/phpunit 4.8.32 requires ext-dom *

    php 安装 yii 报错: phpunit/phpunit 4.8.32 requires ext-dom * 我的版本是7.0,以7.0为例演示. 先装这两个拓展试试: sudo apt-get ...

  5. 在element的table修改事件中修改数据,table的数据也会修改

    大家在修改的时候有的会通过点击事件里面获取点击列表的值然后去赋值,但是row是Object对象类型,如果直接赋值的话,就变成了浅拷贝,复制的是地址,导致在表单中改变值的时候table中的数据也跟着改变 ...

  6. moment常用方法

    1.subtract方法,时间加减处理 console.log(moment().format("YYYY-MM-DD HH:mm:ss")); //当前时间 console.lo ...

  7. Vue前端基础学习

    vue-cli vue-cli 官方提供的一个脚手架(预先定义好的目录结构及基础代码,咱们在创建Maven项目的时可以选择创建一个骨架项目,这个骨架项目就是脚手架),用于快速生成一个vue项目模板 主 ...

  8. Redisson 分布式锁实现之源码篇 → 为什么推荐用 Redisson 客户端

    开心一刻 一男人站在楼顶准备跳楼,楼下有个劝解员拿个喇叭准备劝解 劝解员:兄弟,别跳 跳楼人:我不想活了 劝解员:你想想你媳妇 跳楼人:媳妇跟人跑了 劝解员:你还有兄弟 跳楼人:就是跟我兄弟跑的 劝解 ...

  9. 单片机项目中使用新IC芯片的调试方法

    前两天,一位小伙伴咨询我一款新IC芯片怎么使用,借此机会我顺便把我日常工作中经常用到的一种调试方法介绍给小伙伴们,希望对对大家有所帮助.准备仓促,文中难免有技术性错误,欢迎大家给予指正,并给出好的建议 ...

  10. 32、JavaScript介绍

    32.1.JavaScript概述: 1.JavaScript的历史: 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名Scr ...