Redhat7系统中的samba服务

samba

简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

相关软件包

samba.x86_64      服务器应用程序
samba-client.x86_64       客户端应用程序
samba-common     Samba的支持文件
这些都可以直接用yum安装

默认端口

通常使用TCP/445进行所有连接。还使用UDP137、UDP138和TCP/139进行向后兼容

基本配置

实验环境

客户端(redhat7.0):server1–172.25.66.11
服务器(redhat7.0):server2–172.25.66.12

实验操作

一:
在服务器server2中
1:yum install samba samba-client samba-common -y
2:start ebable(开启并设置开机自启动samba服务)
在这里插入图片描述
3:关火墙

在客户端server1中
1:yum install samba-client -y
2:smbclient -L //172.25.66.12 看不到任何文件
因为是匿名用户登陆,会提示要输入root密码,不用输入,直接回车
在这里插入图片描述
在服务端server2中:
1:添加用户
smbpasswd -a student #####这个用户必须是已经存在的,下面输入的密码跟用户以前的密码无关##
2:pdbedit -L ####查看添加的用户
3:pdbedit -x student ###删除添加的用户
4:将用户重新添加 (sudent,westos)
在这里插入图片描述

在客户端server1中:
1:访问server2的student目录
smbclient -L //172.25.66.12 -U student 密码为刚才在server2中设置的 ####可以看见student文件
在这里插入图片描述
2:进入student目录
smbclient //172.25.66.12/student -U student
ls后如果出现 NT_STATUS_ACCESS_DENIED 原因是selinux没关,可以将selinux设置为disabled状态,也可以将selinux开关中的samba_enable_home_dirs设置为on(打开)状态
设置好后再次进入student目录
在这里插入图片描述
这次我们可以看到server2中student用户的家目录里面的内容了

二:从client向server中上传文件
在客户端server1中:
1:进入要上传的文件所在的目录 put 文件 (举例:上传 /etc下的passwd文件到服务端的student目录)
(1):进入/etc
(2):smbclient //172.25.66.12/student -U student
(3):put passwd 然后ls查看
在这里插入图片描述
这种方法太麻烦? 那试试下面的方法
2:挂载
将server2中的student用户的家目录直接挂载道客户端的/mnt目录上,然后就可以直接进入/mnt目录操作
mount //172.25.66.12/student /mnt cifs -o defaults,username=student,password=1234
在这里插入图片描述
进入/mnt操作
在这里插入图片描述

3:开机自动挂载
编写 /etc/rc.d/rc.local
mount //172.25.66.12/student /mnt -o username=student,password=redhat
在这里插入图片描述
重启后df查看挂载
在这里插入图片描述

samba黑白名单

samba黑白名单即为samba的访问控制,通过对IP或者主机名的限制来控制客户机对samba服务器的访问
一:在服务器server2中:
1:rpm -qc samba-common ##查看samba的配置文件
在这里插入图片描述
2:vim /etc/samba/smb.conf
在这里插入图片描述
格式:
黑名单:hosts deny = IP
白名单:hosts allow = IP
我们用客户端server1来测试一下,将客户端server1添加进黑名单
在这里插入图片描述
编辑完成后重启samba服务
二:在客户端server1中:
smbclient //172.25.66.12/student -U student
在这里插入图片描述
测试完成后将客户端server1从服务器server2的samba黑名单移除然后重启服务

系统目录的共享与临时目录的共享

临时目录

一:在服务器server2中:
1:创建一个目录
mkdir /westos
2:vim /etc/samba/smb.conf ###写在最后

 [DIR]
 comment = westos dir
 path = /westos

在这里插入图片描述
3:semanager fcontext -a -t samba_share_t ‘/westos(/.*)?’
restorecon -FvvR /westos/ ###同步安全上下文
systemctl restart smb
在这里插入图片描述
4:在/westos里面创建一些文件
在这里插入图片描述
二:在客户端server1中:
进入/westos目录:
smbclient //172.25.66.12/DIR -U student
ls 可以进入/westos目录
在这里插入图片描述

系统目录

举例:/mnt目录
一:在服务器server2中:
1:vim /etc/samba/smb.conf

[mnt]
comment = mnt dir
path = /mnt

在这里插入图片描述
2:touch /mnt/file{1,3,5}
3:修改布尔值
setsebool -P samba_export_all_ro on
systemctl restart smb
在这里插入图片描述
二:在客户端server1中:
进入/mnt目录:
smbclient //172.25.66.12/mnt -U student
ls 可以进入
在这里插入图片描述

samba多用户认证

一:在客户端server1中:
1:yum install cifs-utlis -y
2:vim /root/smbpass
username=student
password=redhat
在这里插入图片描述
3:mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.66.12/DIR /mnt
4:cd /mnt
5:ls
在这里插入图片描述
6:重新创建一个用户,用此用户进入/mnt目录,ls
在这里插入图片描述
由于新创建的test用户并没有经过认证,所以不能读取挂载的/mnt目录的内容
7:对test用户进行认证
在test用户中
cifscreds add -u westos 172.25.66.12
在这里插入图片描述

匿名用户查看共享

一:在服务器server2中:
vim /etc/samba/smb.conf

第325行: guest ok = yes           允许guest用户访问
第125行: map to guest = bad user  guest用户的映射是非系统用户


在这里插入图片描述
重启smb服务
二:在客户端server1中:
smbclient //172.25.66.12/DIR
ls
在这里插入图片描述
在客户端匿名挂载
mount //172.25.66.12/DIR /mnt -o username=guest,password=""
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值