8.1 实验介绍
8.1.1
关于本实验
本实验通过在 openEuler 系统上搭建文件共享服务器,并通过进程控制命令启动文件共享服
务器。
8.1.2 实验目的
理解文件共享服务器原理。
理解文件共享服务器安装方式。
掌握文件共享服务管理方法。
8.2 实验任务配置
8.2.1 配置思路
1.登录 openEuler 系统后,在 openEuler 上配置软件安装源,使系统能够下载并安装文件共
享服务器软件。
2.安装部署文件共享服务 Samba 后,启动相关的服务,并通过客户端确认服务可正常访问。
8.2.2 配置步骤
步骤 1
挂载系统 ISO,并配置好本地 dnf 源。
步骤 2
配置软件安装源。
使用 Putty 登录 openEuler 系统,输入系统 IP 地址及系统账户与密码。
成功登录 openEuler 后,查看系统状态。
Authorized users only. All activities may be monitored and reported.
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Wed Jul 29 09:47:22 2020 from 172.19.130.180
Welcome to 4.19.90-2003.4.0.0036.oe1.x86_64
System information as of time: Fri Jul 31 10:14:49 CST 2020
System load: 0.00
Processes: 191
Memory used: 21.2%
Swap used: 0.0%HCIA-openEuler 实验指导手册
第 127 页
Usage On: 15%
IP address: 192.168.110.246
Users online: 3
[root@openEuler ~]# uname -a
Linux openEuler 4.19.90-2003.4.0.0036.oe1.x86_64 #1 SMP Mon Mar 23 19:06:43 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux
确认软件源是否安装成功,可以搜索出软件的结果。
[root@openEuler ~]# dnf search samba
Last metadata expiration check: 0:14:40 ago on Mon 14 Sep 2020 04:47:11 PM CST.
================================= Name Exactly Matched: samba
==================================
samba.x86_64 : A suite for Linux to interoperate with Windows
================================ Name & Summary Matched: samba
=================================
samba-libs.x86_64 : Libraries for samba
samba-help.x86_64 : Help package for samba
pcp-pmda-samba.x86_64 : PCP metrics for Samba
samba-client.x86_64 : Client package for samba
samba-common-tools.x86_64 : Tools package for samba
samba-winbind.x86_64 : The winbind package for samba
samba-winbind-modules.x86_64 : The winbind modules for samba
samba-common.x86_64 : Common package for samba client and server
samba-winbind-clients.x86_64 : The winbind client package for samba
==================================== Summary Matched: samba
====================================
libwbclient.x86_64 : The winbind client library for samba
步骤 3
安装文件共享服务。
输入如下命令安装 samba 服务,及其相关组件。
[root@openEuler ~]# dnf -y install samba samba-client samba-common
启动 samba 服务,并设置为开机启动。
[root@openEuler ~]# systemctl start smb;systemctl enable smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service →
/usr/lib/systemd/system/smb.service.
查看服务器监听状态,在 tcp 139,445 端口上监听。
[root@openEuler ~]# netstat -lantp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1276/rpcbind
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 3674/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 5632/sshd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 755432/smbd
tcp 0 0 0.0.0.0:44321 0.0.0.0:* LISTEN 2585/pmcd
tcp 0 0 0.0.0.0:4330 0.0.0.0:* LISTEN 739788/pmlogger
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 755432/smbdHCIA-openEuler 实验指导手册
第 128 页
tcp 0 0 192.168.110.246:22 172.19.130.180:60842 ESTABLISHED 753195/sshd:
root [
tcp 0 64 192.168.110.246:22 172.19.130.180:56950 ESTABLISHED 686088/sshd:
root [
tcp6 0 0 :::111 :::* LISTEN 1276/rpcbind
tcp6 0 0 :::22 :::* LISTEN 5632/sshd
tcp6 0 0 :::445 :::* LISTEN 755432/smbd
tcp6 0 0 :::44321 :::* LISTEN 2585/pmcd
tcp6 0 0 :::4330 :::* LISTEN 739788/pmlogger
tcp6 0 0 :::139 :::* LISTEN 755432/smbd
查看防火墙状态是否开放,如果开放关闭防火墙。
[root@openEuler ~]# systemctl stop firewalld; systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2020-07-31 10:51:17 CST; 16ms ago
Docs: man:firewalld(1)
Process: 1908 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
(code=exited, status=0/SUCCESS)
Main PID: 1908 (code=exited, status=0/SUCCESS)
Jul 08 11:19:39 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall
daemon…
Jul 08 11:19:40 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jul 31 10:51:15 openEuler systemd[1]: Stopping firewalld - dynamic firewall daemon…
Jul 31 10:51:17 openEuler systemd[1]: firewalld.service: Succeeded.
Jul 31 10:51:17 openEuler systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@openEuler ~]# setenforce 0 #临时关闭 seLinux
通过 smbclient 命令查看服务共享状态,输入 root 密码看到当前服务正在运行。
[root@openEuler ~]# smbclient -L localhost
Enter SAMBA\root’s password:
Anonymous login successful
Sharename Type Comment
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.11.6)
SMB1 disabled – no workgroup available
8.3 设置文件共享用户与权限
8.3.1 实验介绍
8.3.1.1
关于本实验
本实验通过在 openEuler 系统上创建文件与用户,并通过配置文件共享服务,使客户端能访
问文件共享服务器。HCIA-openEuler 实验指导手册
第 129 页
8.3.1.2 实验目的
理解文件共享服务器配置方法;
理解文件共享服务权限控制。
8.3.2 实验任务配置
8.3.2.1 配置思路
1.在 openEuler 系统中,通过添加用户与文件,为 samba 文件共享服务器提供用户认证与
存储空间。
2.安装部署文件共享服务 Samba 后,配置 Samba 服务配置,通过客户正常访问。
8.3.2.2 配置步骤
步骤 1
添加 Samba 用户。
使用 useradd 命令添加用户 smb,设置其无 shell 登录。
[root@openEuler ~]# useradd -s /sbin/nologin -M smb
设置用户 smb 的 samba 服务器密码,如 Huawei12#$。
[root@openEuler02 samba]# smbpasswd -a smb
New SMB password:
Retype new SMB password:
Added user smb.
步骤 2
创建共享文件目录。
创建一个共享文件目录 share 用于公共共享,创建一个用户文件目录 smb。
[root@openEuler ~]# mkdir /var/share /var/smb
将 share 与 smb 目录权限更改为 777 权限。
[root@openEuler ~]# chmod 777 /var/share /var/smb
步骤 3
添加 Samba 公共共享配置。
[root@openEuler ~]# vim /etc/samba/smb.conf
在 global 添加如下内容:
[global]
workgroup = SAMBA
security = user
map to guest = Bad User
#新增此行
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
添加公共 share 目录,允许匿名访问目录。
[share]
comment = share
path = /var/shareHCIA-openEuler 实验指导手册
第 130 页
guest ok = yes
writeable = yes
browseable = yes
配置完成后保存退出,然后重启 Samba 服务。
[root@openEuler ~]# systemctl restart smb
使用 Windows 电脑访问 Samba 服务器。在计算机上打开任意文件,输入共享路径\ip 的方
式访问文件共享服务。
进入该文件目录,新建一个文本文档,可以正常创建,公共文件共享目录设置成功。
步骤 4
添加用户共享配置。
在 openEuler 系统中,用户共享目录 smb 的属主。
[root@openEuler ~]# chown smb:smb /var/smb
编辑 Samba 配置文件/var/samba/smb.conf,添加用户共享配置,保存并退出编辑。
[smb]
comment = smb
path = /var/smb
write list = smb
browseable = yes
writeable = yes
read list = smb
valid users = smb
create mask = 0777
directory mask = 0777
重启 Samba 服务。
[root@openEuler ~]# systemctl restart smb
在电脑上,刷新文件共享访问路径\ip\,将出现 smb 目录。 HCIA-openEuler 实验指导手册
第 131 页
尝试点击 smb 访问该目录,需要输入认证信息,输入在步骤 1 中创建的用户及密码。登录该
共享目录。
正确输入认证信息后,可以正常访问,可打开该目录。
在文件目录中创建一个文件夹和文件,可以成功创建,用户共享文件服务器设置成功。HCIA-openEuler 实验指导手册
第 132 页
8.4 运维文件共享服务器
8.4.1 实验介绍
8.4.1.1
关于本实验
本实验通过在 openEuler 系统上定时备份文件共享服务,并介绍 Samba 文件共享服务常见
的错误排除方法。
8.4.1.2 实验目的
理解基于脚本的定时任务配置方法。
理解文件共享服务器常见问题查看方法。
8.4.2 实验任务配置
8.4.2.1 配置思路
1.登录 openEuler 系统后,编写脚本对文件共享服务器的文件设备备份任务,保
存/var/share/目录的数据到/var/smb 中
2.将数据备份脚本设置为每天定时周期执行。
- 查看 Samba 服务器日志,进行基本的排错。
8.4.2.2 配置步骤
步骤 1
编辑数据备份脚本。
使用 root 用户登陆 openEuler 系统后,使用文本编辑器编辑备份脚本。
[root@openEuler ~]# vim /root/backup.sh
编辑内容如下:
#!/bin/sh
mkdir /var/backup
#创建临时备份目录
cp -r /var/share/ /var/backup/
#将共享文件 的数据复制到 份目 夹 备 录
tar -zcPvf /var/smb/backup$(date +%Y%m%d).tar.gz /var/backup
#打包共享目 的数据 录
到/var/backup 目录
rm -rf /var/backup/
#删除临时备份目录
find /var/smb/ -mtime +30 -name “*.tar.gz” -exec rm -rf {} ;
#删除 30 天以上的备份数据HCIA-openEuler 实验指导手册
第 133 页
保存并退出编辑后,将文件设置为可执行权限。
[root@openEuler ~]# chmod +x /root/backup.sh
手动执行脚本,确认是否正常。
[root@openEuler ~]# sh /root/backup.sh
步骤 2
设置定时备份任务。
设置周期任务,要求每天 22:00 执行上述备份脚本。使用 crontab –e 编辑备份任务。
[root@openEuler ~]# crontab –e
0 22 * * * /root/backup.sh
保存并退出编辑,通过 crontab –l 查看定时周期任务。
[root@openEuler ~]# crontab -l
步骤 3
查看 Samba 日志。
日志文件存储于/var/log/目录下,通过 ls 命令确认存储日志的目录。
[root@openEuler ~]# ls /var/logHCIA-openEuler 实验指导手册
第 134 页
查看 samba 日志文件名。
[root@openEuler ~]# ls –l /var/log/samba/
查看 samba 文件共享服务日志。
[root@openEuler ~]# tail /var/log/samba/log.smbd –n 20
步骤 4
Samba 服务器常见故障。
Samba 服务器无法访问。
报错:通过文件共享方式网络连接失败。
修复方法:
在 Samba 服务器上使用 smbclient 确认服务是否正常
[root@openEuler ~]# smbclient -L localhost
说明服务没有正常启动,使用服务重启命令重启服务。
[root@openEuler ~]# systemctl restart smbHCIA-openEuler 实验指导手册
第 135 页
再次使用 smbclient 命令访问 Samba 服务器,可正常访问。
Samba 服务器配置错误,无法启动。
报错:修改 Samba 配置后,重启 Samba 服务出现报错,无法启动。
修复方法:在 Samba 服务器配置目录,使用 testparm 命令检测配置。
查看配置文件。
将该值修改为正确的值。
重启 Samba 服务,服务正常启动。
[root@openEuler ~]# systemctl restart smb
文件无权限访问或创建文件
问题:通过共享目录访问,创建文件失败HCIA-openEuler 实验指导手册
第 136 页
修复方法:在 openEuler 系统,查看共享的文件目录的权限是否正确。
[root@openEuler ~]# ls /var/share