以前有为Linux专家说过一句很经典的话“小即是美”。这句话一针见血的道出了Linux操作系统的设计特点。Linux操作系统跟微软操作系统不同,它都是一个个相对独立的软件所构成的一个操作系统,一个软件包完成一项单独的功能。为此Linux系统管理员平时大部分工具都在跟Linux系统软件包打交道。系统管理员要根据企业员工的需要,选择并安装恰当的软件包。故软件包直接跟Linux系统的安全与性能相关。为此为了创造一个稳定、安全的Linux操作系统环境,系统管理员在安装软件包之间先对软件包进行合法性验证。笔者下面就介绍几种常用的验证方法,来帮助大家识别Linux软件包的合法性。

一、检查软件包有否被篡改。

当系统工程师从网络上下载一个软件包之后,其最关心的就是这个软件包是否被篡改过。如一些非法攻击者会否在一些软件包中捆绑一些非法软件等等。为此系统工程师希望有工具能够帮助他来验证软件包是否被人处理过。如果为了达到这个目的,则系统工程师可以通过rpm –k命令来进行验证。验证结果如图所示。为了安全起见,笔者已经把Linux服务器的主机名与账户隐去。

如果这个JDK的软件包没有被人修改过或者没有损坏,则结果就会如上图所示。Shal md5 OK这个简短的信息,就告诉系统工程师这个软件包没有被篡改过的迹象,可以放心使用。但是这个命令有一个缺陷,即只适用于rpm软件包。如果系统工程师所下载的软件包不是RPM格式的,则会提示如下的错误信息。

不过笔者在这里也建议各位Linux系统管理员,通过RPM来管理软件。RPM软件包是一种开发的软件包管理系统,它简化了系统的维护工作,只需要短短的几个指令便可以完成安装软件包、删除软件包、系统验证等功能。RPM软件包有很多的特点。如通过使用RPM,系统管理员不用重新安装整个操作系统,就可以升级系统中的个别组件。RPM软件包会使用一种智能且完全自动化的方式来升级组件,而且软件包的设定文件将会在升级的过程中被保留下来。即如果对邮件客户端进行升级后,原先的帐户等设定将会被保留;如对办公软件进行升级,则原先的工具栏等用户偏爱设置也都将保留下来,用户不用在升级后进行重新设置,等等。这些措施可以大大的方便管理员的维护。如RPM可以验证软件包。如系统管理员在维护操作系统的时候,可能会担心不小心删除了某个软件包中的重要文件,则可以对这个软件包进行验证。如果这个软件包从安装到现在,相关的文件有任何改变都将被查询出来。为此系统管理员可以根据需要选择是否需要重新安装该软件包。可见RPM软件包的很多特性,都可以简化Linux系统工程师的工作。为此笔者在这里强烈建议大家通过RPM的方式来管理软件包。像上面验证软件包是否被篡改以及是否损坏也是RPM特有的功能之一。

二、检查GnuPG key信息。

由于Linux软件是开源的,所以其上面的大部分软件包也是开源的。如笔者开发了一个软件包,则其他人可以在笔者软件包的基础上进行扩展与改进。但是有时候这个调整可能不是系统管理员所需要的。他们可能只需要原始版本即可。为此系统管理员希望能够在拿到软件包之后,能够该软件版本是否是原程序开发者所发布的版本。如果要实现这个目的,则可以按如下的步骤来做。

首先这个软件包必须满足一个前提条件。即这个软件包的程序开发者对这个软件包“签署”了该程序开发者的GnuPG key。做一个形象的比喻,GnuPG key就好像是一个程序开发者的信物。大家看到这个信物之后,就可以判断这个就是程序开发者的原始作品。如果这个程序开发者在软件包中加入了这个 GnuPG key信物,那么系统工程师就可以利用rpm –K命令来检查此软件包是否是原程序开发者所发布的版本。

其次先检查原帐户的信物。如果系统工程师此时得到了一个软件包,并且这个软件包中有签署GnuPG key。此时系统工程师就可以利用rpm –K命令来检查这个软件包是否有问题,是否是原程序开发者所发布的。为了达到这个目的,系统工程师需要先查看原帐户的印章、签名甚至指纹等信息。通常情况下这些内容会被保存在/user/lib/rpm/gnupg目录中。系统工程师可以利用ls –al命令来查看相关的GnuPG key信息。这个命令会列出系统中所有的GnuPG key信物信息。但是有时候系统管理员可能只想看一些特定的GnuPG key信物信息,则可以利用rpm –qi GnuPG key名字的方式来进行查询。通常情况下,系统管理员可以先利用第一个命令查询处所有的GnuPG key信物信息。然后找到GnuPG key名字后,在利用第二个命令来查看这个信物的具体信息。另外如果信息比较多的话,则管理员可以通过rpm –import命令把这些信息导出到系统管理员指定的位置。

第三步就是进行对比。当找到GnuPG key信物信息后,系统工程师就需要跟原先的便是数据来进行比较,以确定这个软件包是否是原程序开发者所发布的版本。此时系统工程师就可以利用rpm –K加上软件包的命令来进行判断。注意这个功能也只适用于RPM软件包。所以笔者在先前就强调,Linux系统工程师尽量采用rpm软件包。否则的话,以上这些内容将很难实现。

另外RPM软件包除了可以验证是否被篡改、是否是原版程序之外,还提供了强有力的查询选项。系统管理员可以利用数据库来查询软件包或者某些文件;还可以轻易的查询处一个文件所隶属的软件包,以及该软件包来自于何处。这主要是因为在RPM软件包中包含着特殊的二元标头数据。在这个二元标头数据中,有该软件包的信息以及相关文件,这使得系统可以更快、更容易的查询个别的软件包,节省Linux系统工程师的工作。如当系统工程师在安装后才发现这个软件有问题,需要判断这个软件包是否是原版程序。此时系统工程师就可以先通过某个文件来查询其隶属的软件包;然后再利用上面这个方法来查询这个软件包是否是原版的。甚至还可以查询处这个软件包的来源。

当系统工程师下载了原始版本的软件包之后,还可以方便的在此基础上进行改善与调整。因为RPM软件包有一个基本的设计原则,即保留该软件的原作者,发布出来的是纯净原软件程序代码。使用RPM,可拥有纯净的源代码以及曾经用过的任何程序进行修正,并加上完整的软件包建立提示。例如现在笔者从网上下载了一个新出来的软件,此时笔者并不需要从头开始对这个软件包进行编译。笔者可以先验证程序修正判断所需要做的事情。利用RPM工具可以很容易的了解编译的默认值以及这个软件所做过的变更。故当系统工程师不满意软件包的功能的话,则可以先下载一个原始版本的软件包(利用上面的方法来判断这个软件包是否是原始版本);然后再在此基础上进行一些调整与开发。开发调整过后,由于不需要从头开始编译,这就很大程度上减轻了系统工程师开发的工作量,通过以上连个方法可以非常容易的判断出软件包是否被篡改、是否损坏以及是否是原版程序。这些信息往往是系统工程师微软软件包所必需要掌握的信息。不过比较遗憾的是,以上两种方法有一个前提条件,即必须使用的是RPM软件包。不过现在这个RPM软件包也是Linux系统上最流行的软件包。为了实现软件包验证的目的,以及出于其他的考虑,笔者建议大家还是采用RPM软件为好。

Linux上安装软件之前先验证软件包合法性.doc

下载Word文档到电脑,方便收藏和打印[全文共2846字]

编辑推荐:

下载Word文档

linux软件不能通过验证,Linux上安装软件之前先验证软件包合法性相关推荐

  1. Linux上安装软件软件汇总

    Linux上安装软件汇总 会持续更新 1 安装jdk 1.下载文件 文件资源链接: https://pan.baidu.com/s/1xmqBb2g8EG220RdDPaasig 提取码:ccjj 2 ...

  2. 在 Linux 上安装软件的 3 种方法

    在 Linux 上安装软件的 3 种方法 转载自DLonng的Blog https://dlonng.com/posts/linux-install-soft 前言 学习 Linux 必须要学会如何安 ...

  3. 汽车linux操作系统怎么安装app,在Fedora Linux操作系统上安装软件的方法

    本文教你在Fedora Linux操作系统上安装软件,以下提供的方法仅供新手阅读,高手就不必阅读了,因为内容非常的简单. 前言 与Ubuntu.Linux Mint和其他用户友好的操作系统相比,Fed ...

  4. Linux学习笔记(三)(安装软件)

    Linux学习笔记(三) 概述 安装软件一般有三种方法: rpm RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出 ...

  5. 在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动

    在linux(ubuntu16.04)系统上安装RTL8822CE网卡驱动 1.下载8822CE驱动https://github.com/alanfox2000/realtek-linux/tree/ ...

  6. 服务器上怎么安装软件系统安装,怎么在云服务器上安装软件

    怎么在云服务器上安装软件 内容精选 换一换 使用mount命令将文件系统挂载至Linux云服务器时,提示wrong fs type, bad option.Linux云服务器系统未安装NFS客户端,用 ...

  7. Mint系统使用介绍,Mint系统安装,在Mint系统上搭建GPU环境,在Mint系统上安装Pycharm、Anaconda等软件,在Mint系统上安装cuda和cudnn

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Mint系统使用介绍,Mint系统安装,在Mint系统上搭建GPU环境,在Mint系统上安装Pycharm.Anacon ...

  8. Windows 7如何禁止在C盘上安装软件?

    Win7如何禁止在C盘上安装软件?大家都知道系统C盘是不能装太多东西的,如果C盘爆满,系统的运行速度就会非常慢.然而我们在Win7系统下安装软件时,系统默认的安装目录都是C盘,如果忘记选择,就直接下载 ...

  9. 计算机系统如何禁止文件删除功能,Win7如何禁止在C盘上安装软件?|win7系统c盘哪些文件是可以删除的...

    Win7如何禁止在C盘上安装软件? Win7如何禁止在C盘上安装软件?大家都知道系统C盘是不能装太多东西的,如果C盘爆满,系统的运行速度就会非常慢.然而我们在Win7系统下安装软件时,系统默认的安装目 ...

最新文章

  1. sql server 2008语言基础: 集合
  2. python打开excel表_Python启动Excel
  3. c语言中lookup函数功能,Lookup函数详解
  4. Jquery$和$$的区别
  5. android eclipse不能创建activity,在eclipse里面开发android应用,不能新建Activity
  6. android ril.java_Android RIL的java框架
  7. python作用域链_Python 中的作用域准则
  8. iOS系统突然故障卡死怎么办?快速解决不求人
  9. vuejs中的回车事件
  10. RCP程序中集成其他插件的配置方法
  11. android 教学ppt下载 百度云,百度云盘使用教程ppt课件.ppt
  12. 我要偷偷的学Python,然后惊呆所有人(第五天)
  13. 计算机音乐吧粉刷匠,中班音乐歌曲《粉刷匠》
  14. llvm greedy register allocator
  15. 天猫店群起店新玩法,安全稳定,天猫店群全店动销退款单后的玩法
  16. 深度学习方向写会议期刊论文的一些笔记
  17. KDD 2020阿里巴巴论文一分钟秒读
  18. 利用smtp协议实现命令行发送邮件
  19. 『计组』CPU 如何区分指令和数据
  20. 趋势丨从云到多云,超融合与云管平台如期而遇

热门文章

  1. 音频特征提取工具librosa
  2. Python(IT峰)笔记06-数据类型详解:列表,列表的定义,列表的基本运算,列表中的切片,列表中的相关函数,浅拷贝,深拷贝,列表推导式
  3. 解决:无法连接Java VisualVM 插件中心, 因为Server returned HTTP response code: 503 for URL: http://www.oracle.com/
  4. 如何使用Echarts来绘制3d效果的柱状图
  5. 计算机应用基础10000字论文,计算机应用基础毕业论文.doc
  6. win10下软件打开乱码问题
  7. Windows 免安装配置MYSQL
  8. 《低等道路计算机设计视频教程,纬地低等级道路设计入门..doc
  9. python二维列表添加元素_二维列表 - Python教程 - C语言网
  10. 蔬菜市场存暴力 生鲜B2C优势凸显