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 = /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