部署YUM仓库、FTP服务以及NFS共享服务

目录

引言

一、YUM仓库服务

1、YUM概述

2、YUM常用的操作命令

3、YUM的其他命令

4、查看历史记录来找到它所依赖的包

5、配置本地源仓库

6、配置ftp源

7、网络源

8、其他网络源

二、FTP服务

1、FTP概述

2、设置匿名用户访问的FTP服务(最大权限)

3、设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)

4、修改匿名用户、本地用户登录的默认根目录

5、使用user_list用户列表文件

三、NFS共享存储服务

1、NFS (网络文件服务)

2、NAS存储

3、端口号

4、NFS特点

5、常用选项

6、其它常用选项

7、NFS共享存储服务配置

8、其他nfs文件

总结


引言

在Linux系统中中构建并使用YUM仓库,实现基于网络的软件包安装、更新、卸载的规范化管理,以及FTP文件传输协议,还有在局域网内部署NFS共享服务器的。

一、YUM仓库服务

1、YUM概述

(1)YUM(Yellow dog Updater Modified)

YUM的前身是YUP(Yellow dog Updater,Yellow dog Linux的软件更新器),最初由TSS公司(Terra Soft Solutions,INC.),使用Python语言开发而成,后来由杜克大学(Duck University)的Linux开发队伍进行改进,命名为 YUM(Yellow dog Updater Modified)。

(2)安装或更新软件

使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。

2、YUM常用的操作命令

选项

操作命令

含义

-y

yum -y install 软件名

安装、升级软件包,“-y”选项表示自动确认

yum -y remove 软件名

卸载软件包,可自动解决其依赖关系

yum -y update 软件名

升级软件包

list

yum list

查询软件包列表

yum list installed

查询系统中已安装的软件包

yum list available

查询仓库中尚未安装的软件包

yum list updates

查询可以升级版本的软件包

info

yum info 软件名

查询软件包的描述信息

search

yum search [all] 关键词

根据某个关键词来查找相关的软件包

whatprovides

yum whatprovides 命令

查询命令属于哪个软件包

3、YUM的其他命令

(1)yum clean all && yum makecache(清除yum缓存并更新)

(2)yum install 包名 -y --downloadonly

(3)yum reinstall -y bash --downloadonly(下载已安装过的rpm包)

(4)yum install 包名 -y --downloadonly --downloaddir=/home/samba/(自动确认,下载samba安装包,包括依赖包保存在home/samba目录中)

4、查看历史记录来找到它所依赖的包

(1)yum history list(列出最近的历史)

(2)yum history info id(列出某次的详细信息)

(3)yum history undo id(撤销某次更改)

(4)yum history --help(查看帮助)

5、配置本地源仓库

[root@localhost ~]# mount /dev/sr0 /mnt/(把光盘挂载到/mnt目录下)
[root@localhost ~]# df -h(查看是否挂载成功)
[root@localhost ~]# cd /etc/yum.repos.d/(切换到etc/yum.repos.d下)
[root@localhost yum.repos.d]# vim local.repo(将local.repo进行vim编辑)
[local](仓库类别)
name=local(仓库名称)
baseurl=file:///mnt(指定URL访问路径为光盘挂载目录)
enabled=1(开启此yum源,此为默认项,可省略)
gpgcheck=0(不验证软件包的签名)
[root@localhost yum.repos.d]# yum clean all && yum makecache(清除yum缓存并更新)

6、配置ftp源

(1)服务端配置

[root@localhost ~]# yum install vsftpd -y(安装vsftpd软件包)
[root@localhost ~]# mount /dev/sr0 /mnt/(把光盘挂载到/mnt目录下)
[root@localhost ~]# df -h(查看是否挂载成功)
[root@localhost ~]# mkdir /var/ftp/centos7(创建挂盘挂载目录)
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/ &(进行cp)
[root@localhost ~]# mkdir /var/ftp/other(创建目录repodata 数据文件)
[root@localhost ~]# cd /var/ftp/other/(到other下)
[root@localhost other]# createrepo -g /mnt/repodata/repomd.xml ./(工具建立仓库数据文件)
[root@localhost other]# systemctl start vsftpd(开启服务)
[root@localhost other]# systemctl status vsftpd(查看开启状态)
[root@localhost other]# systemctl enable vsftpd(开机自启动)
[root@localhost other]# systemctl is-enabled vsftpd(开机自启动的状态)

(2)客户端配置

[root@localhost ~]# yum install ftp -y(安装ftp软件包)
[root@localhost ~]# ftp 192.168.32.128(ftp到服务器)
Connected to 192.168.32.128 (192.168.32.128).
220 (vsFTPd 3.0.2)
Name (192.168.32.128:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit
[root@localhost ~]# cd /etc/yum.repos.d(到yum.repos.d目录下)
[root@localhost yum.repos.d]# mkdir repo.bak(创建repo.bak目录)
[root@localhost yum.repos.d]# mv CentOS* repo.bak/(将CentOS开头的所有文件放到repo.bak目录)
[root@localhost yum.repos.d]# vim ftp.repo(创建远程yum源的配置文件)
[ftp](仓库类别)
name=ftp(仓库名称)
baseurl=ftp://192.168.32.128/centos7(URL 访问路径)
enabled=1(启用此软件仓库)
gpgcheck=0(验证软件包的签名)

[other](仓库类别)
name=ftp(仓库名称)
baseurl=ftp://192.168.32.128/other(URL 访问路径)
enabled=1(启用此软件仓库)
gpgcheck=0(验证软件包的签名)
[root@localhost yum.repos.d]# yum clean all && yum makecache (清除yum缓存并更新)
[root@localhost yum.repos.d]# yum list(查询软件包列表)

7、网络源

(1)清华源

[root@localhost ~]# vim CentOS7-Base-tsinghua.repo

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

(2)163源

下载链接:wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

[root@localhost ~]# vim  CentOS7-Base-163.repo

[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

(3)阿里云源

下载地址:wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@localhost ~]# vim CentOS7-Base-aliyun.repo

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

8、其他网络源

(1)http://ftp.sjtu.edu.cn/centos #上海交大,但服务器位于北京,中国教育网网络中心。 北方用户与教育网用户推荐,速度飞快。

(2)http://centos.ustc.edu.cn,#中国科技大学,服务器位于合肥。 南方用户推荐。

(3)http://mirrors.sohu.com/,sohu的开源镜像服务器,服务器位于山东省联通。 速度飞快,全国用户推荐,经常用FireFox下载CD镜像。

二、FTP服务

1、FTP概述

(1)FTP (File Transfer Protocol):文件传输协议

(2)作用:在Internet上用来传送文件的协议

(3)FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。

[root@localhost ~]# less /etc/services(查看端口号)

其中:20端口用于建立数据连接,并传输文件数据;21端瑞口用于建立控制接,并传输FTP控制命令。

(4)FTP数据连接分为主动模式和被动模式。

主动模式:服务器主动发起数据连接

被动模式:服务器被动等待数据连接

(5)VSFTP全称:very secure FTP

(6)VSFTP模式:C/S模式

2、设置匿名用户访问的FTP服务(最大权限)

(1)服务端配置

[root@localhost ~]# yum install vsftpd -y(安装vsftpd软件包)
[root@localhost ~]# systemctl start vsftpd(开启服务)
[root@localhost ~]# systemctl status vsftpd.service(查看开启状态)
[root@localhost ~]# systemctl enable vsftpd(开机自启动)
[root@localhost ~]# systemctl is-enabled vsftpd.service(开机自启动的状态)
[root@localhost ~]# cd /etc/vsftpd/(进入到vsftpd目录下)
[root@localhost vsftpd]# cp -p vsftpd.conf vsftpd.conf.bak_20210831(备份)
[root@localhost vsftpd]# vim vsftpd.conf(修改配置文件)
anonymous enable=YES(开启匿名用户访问,默认已开启)
write_enable=YES(开放服务器的写权限,若要上传,必须开启,默认已开启)
anon_umask=022(设置匿名用户所上传数据的权限掩码—反掩码)
anon_upload_enable=YES(允许匿名用户.上传文件。默认已注释,需取消注释)
anon_mkdir_write_enable=YES (允许匿名用户创建“上传”目录,默认已注释,需取消注释)
anon_other_write_enable =YES (允许删除、重命名、覆盖等操作,需添加)[root@localhost vsftpd]# chmod 777 /var/ftp/pub/(为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户,上传数据)
[root@localhost vsftpd]# systemctl restart vsftpd(重启服务)
[root@localhost ftp]# cd /var/ftp/pub/(进入到pub目录下)
[root@localhost pub]# echo "xxx" > a.txt(创建一个文件)
[root@localhost pub]# ls(查看文件)
a.txt

(2)Windows界面cmd测试

D:\>ftp 192.168.32.128(建立ftp连接)
连接到 192.168.32.128。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.32.128:(none)): ftp(匿名访问,用户名为ftp)
331 Please specify the password.
密码:(密码为空,直接回车即可完成登录)
230 Login successful.
ftp> cd pub(切换到pub目录)
250 Directory successfully changed.
ftp> put b.txt(上传文件到ftp目录)
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 3 字节,用时 0.01秒 0.60千字节/秒。
ftp> get a.txt(下载文件到当前windows本地目录)
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for a.txt (4 bytes).
226 Transfer complete.
ftp: 收到 4 字节,用时 0.00秒 4.00千字节/秒。
ftp> quit(退出)

(3)服务端上测试结果

[root@localhost pub]# ls(查看以上传好的文件)
a.txt  b.txt

3、设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)

(1)服务端配置

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf(修改配置文件)
anonymous_enable=NO(关闭匿名用户访问)
local_enable=YES(启用本地用户)
write_enable=YES(开放服务器的写权限—若要上传,必须开启)
local_umask=077(可设置仅宿主用户拥有被上传的文件的权限—反掩码)
chroot_local_user=YES(将访问禁锢在用户的宿主目录中)
allow_writeable_chroot=YES(允许被限制的用户主目录具有写权限)
[root@localhost ~]# systemctl restart vsftpd(重启服务)

(2)Windows界面cmd测试

D:\>ftp 192.168.32.128(建立ftp连接)
连接到 192.168.32.128。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.32.128:(none)): lisi(匿名访问,用户名为lisi)
331 Please specify the password.
密码:(输入密码登录)
230 Login successful.
ftp> put x.txt(上传文件到ftp目录)
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 收到 66 字节,用时 0.00秒 66.00千字节/秒。

(3)服务端上测试结果

[root@localhost ~]# cd /home/lisi/
[root@localhost lisi]# ls(查看以上传好的文件)
x.txt

4、修改匿名用户、本地用户登录的默认根目录

anon_root=/var/www/html(anon root针对匿名用户)
local_root=/var/www/html(local root针对系统用户)

5、使用user_list用户列表文件

vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES(启用user_list用户列表文件)
userlist_deny=NO(设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用)
vim /etc/vsftpd/user_list(末尾添加zhangsan用户)
zhangsan

三、NFS共享存储服务

1、NFS (网络文件服务)

NFS是一种基于TCP/IP传输的网络文件系统协议,最初由Sun公司开发。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。NFS也是NAS存储设备必然支持的一种协议。

2、NAS存储

NFS服务的实现依赖于RPC(Remcte Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在CentOS 7系统中,需要安装nfs-utils、rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs。

3、端口号

(1)nfs端口号为2049;

(2)RPC端口号为111。

4、NFS特点

(1)采用TCP/IP传输网络文件;

(2)安全性低;

(3)简单易操作;

(4)适合局域网环境。

5、常用选项

选项

含义

rw

表示允许读写

ro

表示为只读

sync

表示同步写入到内存与硬盘中

no_ root_squash

表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限

6、其它常用选项

选项

含义

all_squash

表示所有访问用户都映射为匿名用户或用户组

async

表示将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据

subtree_check

表示若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认)

no_subtree_check

表示即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

7、NFS共享存储服务配置

(1)服务端配置

[root@localhost ~]# yum install nfs-utils rpcbind -y(安装nfs-utils rpcbind 软件包)
[root@localhost ~]# systemctl start nfs(开启nfs服务)
[root@localhost ~]# systemctl start rpcbind(开启rpcbind服务)
[root@localhost ~]# netstat -anup | grep rpc(查看rpc的端口)
[root@localhost ~]# rpcinfo -p localhost(查看nfs向rpc注册的端口信息)
[root@localhost ~]# vim /etc/exports(NFS的配置文,文件内容默认为空,无任何共享)
/opt/web 192.168.32.0/24(rw,sync,no_root_squash)
[root@localhost ~]# systemctl restart nfs(重启nfs服务)
[root@localhost ~]# systemctl restart rpcbind(重启rpcbind服务)
[root@localhost ~]# exportfs -v(验证结果)
/opt/web      	192.168.32.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
[root@localhost ~]# mkdir /opt/web(创建web目录)
[root@localhost ~]# showmount -e localhost(验证共享)
Export list for localhost:
/opt/web 192.168.32.0/24

(2)客户端配置

[root@localhost ~]# yum install nfs-utils rpcbind -y(安装nfs-utils rpcbind 软件包)
[root@localhost ~]# showmount -e 192.168.32.128(客户端验证共享)
Export list for 192.168.32.128:
/opt/web 192.168.32.0/24
[root@localhost ~]# yum install httpd -y(安装httpd软件包)
[root@localhost ~]# mount -t nfs 192.168.32.128:/opt/web /var/www/html(将共享目录挂载到网页目录)
[root@localhost ~]# df -h(查看挂载成功)
文件系统                 容量  已用  可用 已用% 挂载点
192.168.32.128:/opt/web   56G  5.0G   51G    9% /var/www/html
[root@localhost ~]# cd /var/www/html/(到html目录下)
[root@localhost html]# echo "this is abc" >> /var/www/html/index.html(创建一个index.html文件)
[root@localhost html]# systemctl start httpd.service (开启httpd服务)
[root@localhost html]# curl 127.0.0.1(客户端成功访问主页内容)
this is abc

(3)服务端查看文件

[root@localhost ~]# cd /opt/web/(到web目录下)
[root@localhost web]# cat index.html(验证服务端会同步)
this is abc

注意:NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,

服务器端NFS服务突然间停掉了,那么在客户端就会出现执行df -h 命令卡死的现象。这个时候使用umount命令是无法直接卸载的,需要加上“-lf”才能卸载。-l:表示解除正在繁忙的文件系统;-f:表示强制。

[ root@localhost web]# systemctl stop nfs(服务器端模拟nfs挂掉)

[ root@localhost~] # umount /var/www/html(客户端卸载时会卡住)

[root@localhost ~]# umount -lf /var/www/html(加-lf参数成功卸载)

修改/etc/fstab实现自动挂载

192.168.32.128:/opt/web   /var/www/html   nfs   defaults,_netdev o o

defaults,_netdev说明这是一个网络设备

8、其他nfs文件

/var/lib/nfs/etab(记录NFS分享出来的目录的完整权限设定值)

/var/lib/nfs/xtab(记录曾经登录过的客户端信息)

总结

1、YUM软件仓库主要通过HTTP或FTP方式进行发布,且需要提供repodata数据,其中包含所有rpm包文件的头信息。
2、使用YUM命令查询软件包时,可用的子命令包括list、info、search,分别用于查询软件包列表、查询软件句的描术信息、查询指定的软件包。
3、使用YUM命令安装、升级、卸载软件包时,对应的子命令分别为install、update、remove。
4、FTP的主动模式是由服务端先发起数据连接,被动模式是由客户端先发起数据连接。
5、NFS服务的实现依赖于RPC机制,RPC充当NFS客户端和NFS服务器的中介。需要安装nfs-utils、rpcbind软件包来提供 NFS 共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
6、对NFS共享的访问使用mount命令来进行挂载,对应的文件系统类型为nfs。既可以手动挂载,也可以加入fstab配置文件来实现开机自动挂载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值