大家好,又见面了,我是你们的朋友全栈君。
一、Samba概述
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。 windows里的匿名用户是guest smb必须是本地存在的用户
二、Samba服务器的搭建
实验环境:
- 配置两个虚拟机的ip,设置虚拟机desktop的ip为172.25.254.112,虚拟机server的ip为172.25.254.212
- 更改虚拟机desktop的名字改为client.westos.com,虚拟机server的名字为server.westos.com
- 搭建yum源
- 然后在各自的虚拟机里作解析vim /etc/hosts 客户端是:172.25.254.112 client.westos.com 服务端是:172.25.254.212 server.westos.com
实验步骤如下:
服务端操作: 1.搜索服务,寻找软件包,如下所示:
2.安装服务(共有3个包),如下所示:
3.开启服务,并建立/haha目录,更改安全上下文,然后再加载使其生效,如下所示:
4.更改服务的配置文件,如下所示:
5.重启服务,并使服务开机自启动,查看并关闭火墙,如下所示:
6.创建用户westos,并将westos用户加入到samba服务器中,然后进入/haha目录建立文件并查看,如下所示:
客户端测试操作:
1. 安装服务,如下所示:
2.以匿名用户的身份查看smaba服务器的共享目录,发现了对外名称,如下所示:
3. 直接进入samba服务器共享名称的目录下,查看发现了在服务端建立的文件,如下所示:
4.挂载并查看,然后进入挂载目录下建立文件,发现并不能建立,因为为只读文件,如下所示:
二、Samba服务器共享目录的管理
1. 显示说明
服务端操作: 1.进入配置文件添加显示说明目录,如下所示:
2. 重启服务,如下所示:
客户端测试: 匿名进入共享,发现说明共享出来了,如下所示:
2. 隐藏显示
服务端操作: 1.进入配置文件添加隐藏目录文件,如下所示:
2.重启服务,如下所示:
客户端测试: 匿名进入共享,发现共享不见了,但此时进入共享服务名称下可以查看到在服务端建立的文件,如下所示:
总结: 把共享目录隐藏,但隐藏并不代表没共享
3. 给指定用户登陆的权力
服务端操作: 1.新建用户kkk,并将用户kkk加入到samba服务器目录中,如下所示:
2.进入配置文件添加隐藏目录文件,如下所示:
3.重启服务,如下所示:
客户端测试: westos用户可以登陆samba服务,并能查看到共享过来的文件,而kkk用户不能登陆,因为没有登陆的权限,如下所示:
4. 给指定用户组登陆权力
服务端操作: 1. 分别查看用户westos、kkk和student的id,并将kkk添加为westos组中,如下所示:
2.进入配置文件添加指定用户组登陆,如下所示:
3. 重启服务,如下所示:
客户端测试: westos用户和kkk用户可以登陆samba服务,并能查看到共享过来的文件,而student用户不能登陆,没有登陆的权限,因为westos和kkk用户都属于westos组,所以能登陆,如下所示:
5. 给用户写的权力
服务端操作: 1.进入配置文件添加用户写的权力,如下所示:
2. 重启服务并查看目录属性,然后修改用户的权限列表,使用户kkk和用户westos可写,如下图示:
客户端测试: westos用户和kkk用户可以登陆samba服务,并能查看到共享过来的文件以及删除文件和文件上传,而student用户虽然能登陆,但不能删除和上传文件,因为student文件系统的权力没有被允许,如下所示:
6. 给指定用户写的权力
服务端操作: 1.进入配置文件添加指定用户写的权力,如下所示:
2. 重启服务,如下图所示:
客户端测试: westos用户可以登陆samba服务,并能查看到共享过来的文件,但不能删除和文件上传,而kkk用户不仅能登陆还能删除和上传文件,如下所示:
6. 给指定用户组写的权力
服务端操作: 1.进入配置文件添加指定用户组写的权力,如下所示:
2.重启服务,如下图所示:
客户端测试: westos用户可以登陆samba服务,并能查看到共享过来的文件,但不能删除和文件上传,由于westos用户不属于kkk组,如下所示:
服务端操作: 在服务端将westos用户添加到kkk组,如下所示:
客户端再次测试: 发现westos用户可以登陆samba服务,并能查看到共享过来的文件,也能删除和文件上传,如下所示:
7. 匿名用户挂载
服务端操作: 1.进入配置文件添加指定添加匿名用户挂载文件,如下所示:
2. 重启服务,如下所示:
客户端测试: 首先df查看发现没有挂载,再去进行匿名用户的只读挂载,发现并不能挂载成功,如下所示:
为了解决这一问题,我们还需要在客户端进行以下的操作,如下所示: 服务端操作: 使挂载进程识别samba用户,如下所示:
客户端测试: 1. 首先df查看发现没有挂载,再去进行匿名用户的只读挂载,发现能挂载成功,如下图所示:
2. 以westos用户登录,发现能登陆成功,并且能删除和上传文件,如下图所示:
8. 设定共享目录的超级用户
服务端操作: 1.进入配置文件添加共享目录的超级用户为student,如下所示:
2. 重启服务,如下所示:
客户端测试: student用户登录,发现不仅能登陆成功还能删除和上传,如下图所示:
9. 更改服务器的工作机构名字
服务端操作: 1.进入配置文件更改服务器的工作机构名字为GAOGAO,如下所示:
2. 重启服务,如下所示:
客户端测试: 匿名进入samba的服务器查看发现机构名字已经改变为GAOGAO,如下所示:
三、Samba服务器的多用户挂载
问题存在: 当在客户端建立本地用户linux后,切换到linux用户,并且进入到共享目录下发现也可以查看到root挂载在/mnt下的东西,这样很不安全,如下图所示:
为了解决上面的问题,我们在客户端进行下面的操作: 客户端操作: 1. 查看挂载信息,如下所示:
2. 安装多用户挂载服务,如下所示:
3. df查看挂载,如下所示:
4. 由于上面的挂载用户和密码是裸露在外面的,很不安全,为了安全我们将它写入认证文件中,如下所示:
5. 修改文件的权限,并以只读方式对其进行挂载,然后再去查看挂载,发现挂载成功,如下所示:
6.mount依然可以查看挂载信息,如下所示:
7. 此时切换到本地用户,发现依然可以在挂载目录下查看到root用户在共享目录下面的东西,如下所示:
8.卸载之后之后重新挂载,不让别的本地用户用户查看自己的操作,如下所示:
9. 当需要查看时,需要请求一个smba用户身份进行认证,当输入密码正确时如下所示:
10.当请求认证输入密码不正确时,如下所示:
服务端操作: 在服务端切换到目录/haha下,查看文件发现文件的用户名和用户组都为westos,如下所示:
四、Samba服务器的永久挂载
1. 卸载挂载,如下所示:
2. 编辑永久配置文件,如下所示:
3. 使挂载生效,并查看挂载
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/129542.html原文链接:https://javaforall.cn