Samba

来源:互联网 发布:电子教室软件免费版 编辑:程序博客网 时间:2024/05/21 04:38

一,samba简介:
Samba是一套让UNIX系统能够应用Microsoft网络通讯协议的软件。Samba属于GNU Public License(简称GPL)的软件。什么是SMB?SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft 网络的通讯协议,而Samba则是将SMB协议搬到UNIX上来应用;Sa**mba的核心是 SMB(Server Message Block)协议。SMB协议是客户机/服务器型协议**,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,更能与全世界的电脑分享资源。

二,samba的安装和配置:
实验环境:selinux开启,火墙关闭
开启selinux是因为在实验中要同步安全上下文
但是为了防止selinux 的影响,需要开启相应的bool值

getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on

在server端:yum install -y samba.x86_64 samba-common.x86_64 samba-client.x86_64
systemctl start smb
ss -antlpe | grep smb #查看服务端口

客户端:yum install -y samba-client.x86_64

server上:
创建samba用户:
smbpasswd -a student
注意:这个用户必须是主机上存在的,否则会报错

查看smb用户:
[root@smb-server ~]# pdbedit -L
student:1000:Student User
linux:1001:

这里写图片描述

创建samba共享目录:
mkdir /share
setfacl -m u:student:rwx /share/ #为了安全设置指定用户的权限

vim /etc/samba/smb.conf

公共目录配置:
89 workgroup = data #改变共享组的名为data
95 hosts allow = 172.25.254.92 #白名单
96 hosts deny=172.25.254.91 #黑名单
125 map to guest = bad user #设置其他主机以guest身份挂载

共享目录配置:
323 [data] #共享目录在客户端显示的名称
324 comment = qqdata #共享目录的描述
325 path = /share #指定共享目录
326 guest ok = yes #允许以guest挂载
327 writable = yes #用来指定该共享路径是否可写。
328 write list = student #write list用来指定可以在该共享下写入文件的用户。
329 browseable = no #用来指定该共享是否可以浏览

查看共享目录:
这里写图片描述
查看共享目录中的内容:
这里写图片描述
以guest身份挂载:
这里写图片描述

注意:在这之前需要更改/share目录的安全上下文:
semanage fcontext -a -t samba_share_t ‘/share(/.*)?’
restorecon -RvvF /share
否则无法显示目录中的内容。

smb多用户挂载:如果服务器端的smb用户创建的数据对客户端所有人是可共享的,则不安全,所以可以在客户端使用多用户挂载的方式来避免这样的不安全问题。
在客户端:yum install cifs-utils.x86_64 -y
创建smb多用户挂载目录:此处使用/mnt
[root@smb-client ~]# vim /root/smbpass #编写smb认证文件

    username=student    password=123     #服务端samba用户的密码

[root@smb-client ~]# chmod 600 /root/smbpass

编辑/etc/fstab,永久挂载smb共享:
//server0/smbshare /mnt/multiuser cifs credentials=/root/smb-multiuser.txt,multiuser,
sec=ntlmssp 0 0
mount -a

测试:在客户端挂载后,开始时切换用户是无法看到共享目录重的内容的,使用命令:cifscreds add -u linux 172.25.254.93 ,意思是可以以服务器端linux用户的权限来访问共享目录。当然,linux这个用户在服务器必须存在,而且是smb用户。

原创粉丝点击