> 文章列表 > Linux系统之部署Samba服务

Linux系统之部署Samba服务

Linux系统之部署Samba服务

Linux系统之部署Samba服务

  • 一、Samba服务介绍
    • 1.Samba服务简介
    • 2.NFS和CIFS简介
    • 3.Smaba服务相关包
    • 4.samba监听端口
    • 4.samba相关工具及命令
  • 二、环境规划介绍
    • 1.环境规划
    • 2.本次实践介绍
  • 三、Samba服务端配置
    • 1.检查yum仓库
    • 2.安装smaba相关软件包
    • 3.创建共享目录
    • 4.设置共享目录权限
    • 5.新建samba用户
    • 6.编辑samba主配置文件
    • 7.测试配置文件语法
    • 8.启动samba服务
    • 9.关闭防火墙或者selinux
  • 四、Samba客户端配置
    • 1.安装samba-client相关软件包
    • 2.检查Samba服务端共享目录
    • 3.创建samba认证用户文件smbur
    • 4.挂载共享目录
    • 5.查看客户端的文件系统
  • 五、Samba共享目录的权限测试
    • 1.检查alice用户的权限
    • 2.kitty和jeven用户的访问权限

一、Samba服务介绍

1.Samba服务简介

1.SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
2.Samba是Linux与Linux或Windows之间实现文件共享及打印机等共享服务。
3.Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。

2.NFS和CIFS简介

  • NFS:网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

  • NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。

  • CIFS:common internet file system,微软基于SMB发布。CIFS 用于在 Windows 操作系统上运行的远程操作,优先支持使用 Windows 操作系统的用户。

3.Smaba服务相关包

1.samba 提供smb服务
2.samba-client 客户端软件
3.samba-common 通用软件
4.cifs-utils smb客户端工具
5.samba-winbind 和AD相关

4.samba监听端口

TCP:139/445
UDP:137/138

4.samba相关工具及命令

主配置文件:/etc/samba/smb.conf
语法检查: testparm [-v] [/etc/samba/smb.conf]
客户端工具:smbclient,pdbedit -L(列出Samba用户列表,读取passdb.tdb数据库文件)

二、环境规划介绍

1.环境规划

本次环境规划如下:

hostname IP地址 操作系统版本 角色
jeven 192.168.3.166 centos7.6 客户端
server001 192.168.3.157 centos7.6 服务端

2.本次实践介绍

1.本次实践环境为个人测试环境,生产环境请谨慎使用;
2.Samba用户为三个(kitty,jeven,alice);
3.3个用户都可以浏览共享目录/share/;
4.kitty和jeven可以写入文件共享目录。

三、Samba服务端配置

1.检查yum仓库

检查yum仓库状态,确保epel已经安装,
没有安装的话,使用 yum install epel-release -y安装。

[root@server001 ~]# yum repolist all |grep enable 
!base/7/x86_64                               CentOS-7 - Base     enabled: 10,072
!docker-ce-stable/7/x86_64                   Docker CE Stable -  enabled:    226
!epel/x86_64                                 Extra Packages for  enabled: 13,771
!extras/7/x86_64                             CentOS-7 - Extras   enabled:    515
!mysql-connectors-community/x86_64           MySQL Connectors Co enabled:    220
!mysql-tools-community/x86_64                MySQL Tools Communi enabled:     98
!mysql80-community/x86_64                    MySQL 8.0 Community enabled:    405
!remi-safe                                   Safe Remi's RPM rep enabled:  5,147
!updates/7/x86_64                            CentOS-7 - Updates  enabled:  4,886
!zabbix/x86_64                               Zabbix Official Rep enabled:    114
!zabbix-agent2-plugins/x86_64                Zabbix Official Rep enabled:      4
!zabbix-non-supported/x86_64                 Zabbix Official Rep enabled:      5

2.安装smaba相关软件包

安装 samba 和samba-client软件包

yum -y install samba samba-client

3.创建共享目录

创建samba共享目录/share

 mkdir  /share

4.设置共享目录权限

创建共享文件

[root@server001 ~]# cp /etc/passwd /etc/group /share
[root@server001 ~]# ls /share/
group  passwd

给共享目录设置777权限

 chmod -R 777 /share/

5.新建samba用户

新建三个samba用户,kitty、alice、jeven,其中kitty属于it组。

[root@server001 ~]# groupadd it
[root@server001 ~]# useradd -g it kitty
[root@server001 ~]# useradd alice
[root@server001 ~]# useradd jeven
[root@server001 ~]# smbpasswd -a kitty
New SMB password:
Retype new SMB password:
Added user kitty.
[root@server001 ~]# smbpasswd -a alice
New SMB password:
Retype new SMB password:
Added user alice.
[root@server001 ~]# smbpasswd -a jeven
New SMB password:
Retype new SMB password:
Added user jeven.
[root@server001 ~]# 

查看samba用户列表

[root@server001 ~]# pdbedit -L
kitty:1002:
jeven:1004:
alice:1003:

6.编辑samba主配置文件

先备份/etc/samba/smb.conf文件

 cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

在/etc/samba/smb.conf文件中,新增以下部分:


[share]path = /sharebrowseable = yeswrite list = @it,jevenhosts allow = 192.168.3.0/24

Linux系统之部署Samba服务

7.测试配置文件语法

测试配置文件语法,确保配置文件修改正确。

[root@server001 ~]#  testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions# Global parameters
[global]printcap name = cupssecurity = USERworkgroup = SAMBAidmap config * : backend = tdbcups options = raw[homes]browseable = Nocomment = Home Directoriesinherit acls = Yesread only = Novalid users = %S %D%w%S[printers]browseable = Nocomment = All Printerscreate mask = 0600path = /var/tmpprintable = Yes[print$]comment = Printer Driverscreate mask = 0664directory mask = 0775force group = @printadminpath = /var/lib/samba/driverswrite list = @printadmin root[share]hosts allow = 192.168.3.0/24path = /sharewrite list = @it jeven

8.启动samba服务

重启samba服务

systemctl enable --now smb
systemctl enable --now nmb

9.关闭防火墙或者selinux

可选择关闭防火墙或者开启防火墙,,放行samba服务

  • 关闭防火墙
systemctl stop firewalld  && systemctl disable  firewalld 
  • 放行samba服务
 firewall-cmd --permanent --add-service=samba
firewall-cmd --reload 
  • 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

四、Samba客户端配置

1.安装samba-client相关软件包

安装samba-client相关软件包

 yum -y install samba-client cifs-utils

2.检查Samba服务端共享目录

查看samba共享目录

smbclient -L //192.168.3.157 -U kitty%redhat
[root@jeven ~]# smbclient  //192.168.3.157/share   -U kitty
Enter SAMBA\\kitty's password: 
Try "help" to get a list of possible commands.
smb: \\> ls.                                   D        0  Fri Apr 21 22:52:23 2023..                                  D        0  Fri Apr 21 22:47:05 2023passwd                              N     1296  Fri Apr 21 22:52:23 2023group                               N      638  Fri Apr 21 22:52:23 202352403200 blocks of size 1024. 33511324 blocks available
smb: \\> 

3.创建samba认证用户文件smbur

创建samba认证用户文件smbur,使用alice作为认证用户。

 echo "username=alice" >> /etc/samba/smbur.txtecho "password=redhat" >> /etc/samba/smbur.txt

4.挂载共享目录

创建挂载目录

 mkdir -p /samba/share

在/etc/fstab文件中,永久挂载samba共享目录。

[root@jeven ~]# grep samba /etc/fstab 
//192.168.3.157/share /samba/share cifs defaults,credentials=/etc/samba/smbur.txt,multiuser,sec=ntlmssp 0 0

挂载samba共享目录

mount -a

5.查看客户端的文件系统

查看samba客户端的文件系统,/samba/share目录已经成功挂载。

[root@jeven ~]# mount -a
[root@jeven ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs                   tmpfs     3.9G   16K  3.9G   1% /dev/shm
tmpfs                   tmpfs     3.9G  163M  3.8G   5% /run
tmpfs                   tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       106G  103G  3.5G  97% /
/dev/sda1               xfs      1014M  278M  737M  28% /boot
/dev/mapper/centos-home xfs      1014M   35M  980M   4% /home
tmpfs                   tmpfs     793M   12K  793M   1% /run/user/42
tmpfs                   tmpfs     793M     0  793M   0% /run/user/0
overlay                 overlay   106G  103G  3.5G  97% /var/lib/docker/overlay2/fd50a66714358108e44dc1a14f0d8bdffc94985f13cec5ce7a046ce57295fb1a/merged
overlay                 overlay   106G  103G  3.5G  97% /var/lib/docker/overlay2/4dfc8bb698726775c15c6a9a13a83b7e2c40205907d6a8fd6bb8f1a225d3bc0b/merged
overlay                 overlay   106G  103G  3.5G  97% /var/lib/docker/overlay2/5416d09ee09287c946db83f95285788c50b99f3a7aa3bbf6f684575bb36df52a/merged
overlay                 overlay   106G  103G  3.5G  97% /var/lib/docker/overlay2/60c94259e4d74fffff425764a21380e86361707ff301eb99c9bfa337c6e230da/merged
overlay                 overlay   106G  103G  3.5G  97% /var/lib/docker/overlay2/cf7227761c12d4eeb511542064155b86dc5a359204cc5b221252eb03b5f952ef/merged
//192.168.3.157/share   cifs       50G   19G   32G  37% /samba/share

五、Samba共享目录的权限测试

1.检查alice用户的权限

检查在/samba/share上,以alice用户访问,新建文件的权限是拒绝的。

root@jeven ~]# cd /samba/share/
[root@jeven share]# ls
group  passwd
[root@jeven share]# touch aa.txt
touch: cannot touch ‘aa.txt’: Permission denied
[root@jeven share]# 

2.kitty和jeven用户的访问权限

切换本地admin用户,以kitty和jeven这两个samba用户测试访问权限。
kitty和jeven用户都可以正常访问共享目录,也可以在共享目录中新建文件。

[root@jeven share]# su - admin
Last login: Sun Apr 16 19:06:55 CST 2023 on pts/2
[admin@jeven ~]$ cifscreds add -u kitty  server001
error: Could not resolve address for server001
[admin@jeven ~]$ cifscreds add -u kitty  192.168.3.157
Password: 
[admin@jeven ~]$ cd /samba/share/
[admin@jeven share]$ ls
group  passwd
[admin@jeven share]$ touch kitty.txt
[admin@jeven share]$ ls
group  kitty.txt  passwd
[admin@jeven share]$ cifscreds update  -u jeven  192.168.3.157
Password: 
[admin@jeven share]$ ls
group  kitty.txt  passwd
[admin@jeven share]$ touch jeven.txt
[admin@jeven share]$ ls
group  jeven.txt  kitty.txt  passwd