SAMBA服务器

一、介绍

SAMBA最初发展的主要目的就是用来进行沟通windows与unix like这两个不同的操作系统平台

主要功能为:

1、共享文件与打印机服务

2、可以提供用户登陆samba主机时的身份认证,以提供不同身份用户的个别数据

3、可以进行windows网络上的主机名解析

4、可以进行设备的共享

协议:SAMBA使用的NetBIOS通信协议,NetBIOS是无法跨越路由的,目前SAMBA还是比较广泛的使用在LAN中,也可以通过NetBIOS over TCP/IP的技术,就可以跨路由使用SAMBA服务器提供的功能。

二、构成

主要使用软件包:

samba.x86_64   :主要提供了SMB服务器所需要的各项服务程序(smbd、nmbd)

samba-client.x86_64    :主要提供客户端所需要的命令

samba-common  :主要提供了客户端与服务端都会使用到的命令

SAMBA服务器

SAMBA服务器主要是通过两个服务

1、nmbd:用来管理工作组、NetBIOS Name等的解析,主要是利用UDP协议开启端口137、138来负责名称解析的任务

2、smbd:用来管理SAMBA主机共享的目录、文件与打印机等,主要是利用可靠的TCP协议来传输数据,开放的端口为139、445

主配置文件   :/etc/samba/smb.conf

三、主要使用命令

服务端:设置火墙策略,添加服务,开启smb服务

[[email protected] ~]# firewall-cmd --permanent --add-service=samba
success
[[email protected] ~]# firewall-cmd --permanent --add-service=samba-client
success

[[email protected] ~]# systemctl restart firewalld.service             永久设置,重启服务
SAMBA服务器

客户端:匿名用户登陆

[[email protected] ~]# smbclient -L //172.25.254.173
SAMBA服务器


服务端:设置samba用户,samba用户必须为服务器端的本地用户

[[email protected] ~]# smbpasswd -a student                ##student用户为本地用户
New SMB password:                                               ##samba用户密码与linux登陆密码可一致也可不一致
Retype new SMB password:
Added user student.
[[email protected] ~]# pdbedit -L                                    ##查看samba用户
student:1000:Student User
SAMBA服务器SAMBA服务器

客户端:[[email protected] ~]# smbclient -L //172.25.254.173 -U student          ##使用student用户身份登陆
Enter student's password:
SAMBA服务器

[[email protected] ~]# smbclient //172.25.254.173/student -U student   ##进入共享中的student目录


SAMBA服务器

###要是发现进入student目录中ls没有出现的内容,检查selinux的问题,若安全上下文不匹配则ls不能显示出来。

而且会出现挂载不上的问题。

SAMBA服务器

[[email protected] ~]# setsebool -P samba_enable_home_dirs 1
SAMBA服务器

客户端:挂载测试

[[email protected] ~]# mount -o username=student,password=student //172.25.254.173/student /mnt/

SAMBA服务器


修改配置文件 (此配置文件中#;都是注释符号)

1、设置与主机名有关的信息

 89         workgroup = zhaoyan                                    ##工作组的名称
 90         netbios name=zhaoyanserver                       ##主机的NetBIOS名称,每台主机均不同
 91         server string = Samba Server Version  %v        ##主机的简易名称

客户端:测试

SAMBA服务器


黑白名单

 96 ;       hosts allow = 127. 192.168.12. 192.168.13.                      ##默认是一个网段

 97         hosts deny = 172.25.254.71                                              ##拒绝172.25.254.71主机连接


SAMBA服务器

客户端:测试

SAMBA服务器


加入共享的内容:

        [DATA]
        comment = hahaha
        path = /westos

SAMBA服务器

使用[[email protected] westos]# testparm    测试是否文件是否有错误

SAMBA服务器

##此时在客户端测试挂载时出现报错

SAMBA服务器

##报错原因为服务端/westos的目录权限不够

修改该目录的权限

客户端测试:

[[email protected] ~]# mount //172.25.254.173/DATA /mnt/ -o username=student,password=111

SAMBA服务器

可以在配置文件中进行开机直接自动挂载

vim /etc/fstab

SAMBA服务器

增加参数:

        [DATA]
        comment = hahaha
        path = /westos
        writable = yes                   ##可写
        guest ok = yes                  ##单纯共享时,让用户随意登陆设置值
让用户student可写

SAMBA服务器

客户端测试:

SAMBA服务器

让student组的用户均可写:

SAMBA服务器

配置文件:

SAMBA服务器

测试:

SAMBA服务器


SAMBA服务器

让某一用户在挂载后使用root的身份

SAMBA服务器


配置文件:

SAMBA服务器


测试:

SAMBA服务器

不能被浏览到资源名称:

配置文件:

SAMBA服务器

测试:

SAMBA服务器


共享资源仅能被student组的用户可以浏览:

配置文件:

SAMBA服务器


若在客户端的student用户将共享资源挂载在/mnt/上,但经过测验,退出student用户westos登陆其本机的帐号密码,/mnt/下仍然是挂载状态,而且若权限与服务端允许,该共享资源的内容是可以被随意改写的,此下,设置权限,改变此不安全的行为。

多用户挂载:[[email protected] mnt]# yum install cifs-utils.x86_64 -y


在客户端的行为:


建立文件:

vim /root/smbfile

SAMBA服务器

chmod 600 /root/smbfile

测试:

[[email protected] ~]# mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp //172.25.254.173/DATA /mnt

SAMBA服务器

SAMBA服务器

切换客户端的用户

SAMBA服务器

该切换的用户也可进行一次samba的登陆

[[email protected] ~]$ cifscreds add -u zhaoyan 172.25.254.173

SAMBA服务器