samba协议、跨平台共享

Samba来源

1987年,微软公司和英特尔公司共同制定了SMB(server Messages Block)协议用来解决局域网内的文件或打印机等的资源共享问题。但是这时后还是解决不了跨系统之间的文件共享。直到1991年,在读大学的Tridgwell 基于SMB协议开发能够解决Linux系统和windows系统之间的文件的问题——也就是SMBServer服务测序。后来被命名为samba(根据一个拉丁舞名字)。如今,samba服务测序成为了在Linux和windows系统之间共享文件的最佳选择

了解Samba

上面的是samba的来源介绍,那么什么是samba呢?

关于这个问题,可以从以下几点来理解:

1、samba是一组软件包,是Linux支持SMB/CIFS协议(也称S/C)

2、samba可以在几乎所有的类UNIX平台上运行。

功能:

1、使Linux主机成为Windows网络的一份子,与Windows网络相互分享资源

2、使Linux主机可以使用Windows体统共享的文件和打印机

3、使Linux主机成为文件服务器或打印服务器,为Linux 、Windows客户端提供文件共享服务和远程打印服务

需要启动的服务:

1、smb服务:管理SAMBA服务器共享什么目录、文件、打印机

2、nmb服务:管理群组和netbios name解析

以上是基本理论,接下来,实操开始

首先,准备两台虚拟机,一个做为server,另外一个作为client(至于虚拟机的基本配置啊,什么之类的,我就不讲解了吧,都会吧)

实操部署

安装服务

准备好后,我们要在server端开始创建两个用户,注意这两个用户是系统无法登录用户

[root@server ~]# useradd -s /bin/nologin user01
[root@server ~]# useradd -s /bin/nologin user02

我们做这个服务是为了能够实现文件共享,为此,我们还要准备一个共享的文件 /share,并且设置其文件权限为777

[root@server ~]# mkdir /share
[root@server ~]# chmod -R 777 /share/

现在就在server上通过yum来安装samba服务测序

[root@server ~]# yum -y install samba

创建samba账号,用我们最开始创建的user01和user02用户,密码设置为123456(注意我这里的####号表示的是注释的意思:在这里是输入密码。原本这里是交互式输入密码,我这里输入的是123456)

[root@server ~]# smbpasswd -a user01
New SMB password:    ####123456
Retype new SMB password:    ###123456
Added user user01.

也可以用

[root@server ~]# pdbedit -a -u user02
new password:    ###123456
retype new password:   ###123456

接下来就是写配置文件了

先进入到samba的配置文件中

[root@client ~]# vim /etc/samba/smb.conf

将下面一段写入配置文件的最后面

[myshare]
        comment = public document
        path = /share
        public = no
        browseable = Yes
        writable = Yes

记得重启一下smb服务

[root@server ~]# systemctl restart smb

防火墙设置

让后我们还有去将firewalld防火墙和seLinux也要配置,因为默认情况下的话,防火墙是不允许samba服务进行的。所以我们出现了两个设置防火墙的选项:

1、暴力选项:直接关闭防火墙

[root@client ~]# systemctl stop firewalld

2、妥协选项:开启防火 ,设置允许samba服务

[root@client ~]# firewall-cmd --add-service=samba --permanent 
success
[root@server ~]# firewall-cmd --reload 
success

但是有一点要要注意了,防火墙是同意了,seLinux可没有允许啊,为此,我们还要去设置selinux安全上下文。

[root@server ~]# chcon -R -t samba_share_t /share

到这里基本上是够了,但是如果需要samba服务程序访问普通用户家目录或者是共享用户的家目录,我们需要打开sebool设置,

[root@server ~]# setsebool -P samba_enable_home_dirs on

至于这个我们要怎么知道,嘿嘿,我们可以通过getsebool 命令筛选出有关samba服务程序相关的SELinux域策略,但是还是需要策略的名称(经验)选择出正确的策略开启就行了

[root@server ~]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> on    ####我们本次实操开启这个就行了,基本上也就只要要开启这个
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off

Windows客户端

现在我们在主机上输入\\192.168.147.11然后在输入网络凭据,也就是我们一开始设置的samba用户和密码(图这里是输错了)

图片

就可以看到我们共享的文件夹啦

图片

注:可以使用 net use * /del 命令清除网络连接缓存,用来排除上次连接的影响

Linux客户端上

在Linux客户端上我们是需要安装samba-client 和 cifs-utils 软件包

[root@client ~]# yum -y install samba-client cifs-utils

接下来才可以进行连接测试

[root@client ~]# smbclient -L 192.168.147.11 -U user01
Enter SAMBA\user01's password:   ###输入密码123456

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	myshare         Disk      public document
	IPC$            IPC       IPC Service (Samba 4.11.2)
	user01          Disk      Home Directories
SMB1 disabled -- no workgroup available

这时后我们会发现myshare在其中显示着

我们可以进入myshare里面来进行操作

[root@client ~]# smbclient //192.168.147.11/myshare -U user01
Enter SAMBA\user01's password: 
Try "help" to get a list of possible commands.
smb: \>

进入到里面我们可以创建一个目录(这个还是要根据我们之前在server上samba配置文件所给的权限)

smb: \> mkdir test_share

我们可以到server上看是否创建成功

[root@server ~]# ls -l /share/
total 0
drwxr-xr-x. 2 user01 user01 6 Nov 27 02:18 test_share

这里我们可以看到原本什么都没有的/share目录下出现了test_share目录,并且用户和用户组都是user01

挂载samba目录

或者我们可以将samba共享的目录挂在到客户端的本地目录下(我这次使用的临时挂载)

首先创建一个文件用来挂载

[root@client ~]# mkdir /usershare

现在将server上的共享文件挂载到我们client的本地的目录/usershare下,注意要加一个cifs

[root@client ~]# mount -t cifs //192.168.147.11/myshare /usershare/ -o username=user01
Password for user01@//192.168.147.11/myshare:  ******
[root@client ~]# ls -l /usershare/
total 0
drwxr-xr-x. 2 root root 0 Nov 27 02:18 test_share

ok,以上便是关于samba文件共享的一些小操作啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值