Linux系统之部署Samba服务

一、Samba服务介绍

1.Samba服务简介

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

2.NFS和CIFS简介

NFS和CIFS简介:

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

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

NFS和CIFS区别:

  • 不同的操作系统支持:NFS主要用于Unix和Linux系统,而CIFS主要用于Windows系统。

  • 文件处理方式:NFS使用基于客户端/服务器端的文件处理方式,客户端可以通过挂载网络上的文件系统来访问和操作文件;而CIFS使用基于共享文件夹的方式,客户端可以通过访问共享文件夹来处理文件。

  • 文件访问权限:NFS使用基于用户和组的访问控制,可以细粒度地控制文件的访问权限;而CIFS使用基于共享文件夹的访问控制,更容易实现简单的共享和访问控制。

  • 性能和效率:一般情况下,NFS比CIFS更快速和高效,特别是在大规模文件共享和网络传输中。这是因为NFS是为Unix系统设计的,有更好的兼容性和性能优化。

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

5.samba相关工具及命令

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

二、环境规划介绍

1.环境规划

本次环境规划如下:

hostnameIP地址操作系统版本角色
jeven192.168.3.166centos7.6客户端
server001192.168.3.157centos7.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 = /share
      browseable = yes
      write list = @it,jeven
      hosts allow = 192.168.3.0/24

在这里插入图片描述

7.测试配置文件语法

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

[root@server001 ~]#  testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	printcap name = cups
	security = USER
	workgroup = SAMBA
	idmap config * : backend = tdb
	cups options = raw


[homes]
	browseable = No
	comment = Home Directories
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S


[printers]
	browseable = No
	comment = All Printers
	create mask = 0600
	path = /var/tmp
	printable = Yes


[print$]
	comment = Printer Drivers
	create mask = 0664
	directory mask = 0775
	force group = @printadmin
	path = /var/lib/samba/drivers
	write list = @printadmin root


[share]
	hosts allow = 192.168.3.0/24
	path = /share
	write 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 2023
  passwd                              N     1296  Fri Apr 21 22:52:23 2023
  group                               N      638  Fri Apr 21 22:52:23 2023

		52403200 blocks of size 1024. 33511324 blocks available
smb: \> 

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

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

 echo "username=alice" >> /etc/samba/smbur.txt
 echo "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

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Samba是一种开放源代码软件,在Linux中可以用于实现文件共享和打印服务。下面是在Linux系统部署Samba的步骤: 1. 安装Samba软件包 使用Linux系统自带的包管理器,安装Samba软件包。对于Debian/Ubuntu系统,可以使用以下命令: ``` sudo apt update sudo apt install samba ``` 对于Red Hat/CentOS系统,可以使用以下命令: ``` sudo yum update sudo yum install samba ``` 2. 配置Samba Samba配置文件位于/etc/samba/smb.conf。在这个文件中,需要配置共享文件夹的路径、访问权限、用户账户等信息。下面是一个简单的示例: ``` [share] path = /home/user/share valid users = user1,user2 read only = no ``` 这个配置文件定义了一个名为“share”的共享文件夹,位于/home/user/share目录下。只有user1和user2这两个用户可以访问该共享文件夹,并且可以读写。 3. 创建Samba用户账户 在Samba中,需要为每个可以访问共享文件夹的用户创建一个Samba账户。使用以下命令创建一个Samba账户: ``` sudo smbpasswd -a username ``` 其中,username为要创建的Samba账户的用户名。执行该命令后,需要输入该用户的密码。 4. 重启Samba服务 在完成配置后,需要重启Samba服务以使配置生效。使用以下命令重启Samba服务: ``` sudo systemctl restart smbd ``` 现在,可以在其他计算机上通过Samba访问共享文件夹了。在Windows操作系统中,可以使用“网络位置”或“映射网络驱动器”功能访问共享文件夹。在Linux操作系统中,可以使用mount命令挂载Samba共享文件夹。例如: ``` sudo mount -t cifs //server/share /mnt -o username=user1,password=xxxxx ``` 其中,//server/share为Samba共享文件夹的地址,/mnt为本地挂载点。需要使用Samba账户的用户名和密码进行验证。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值