Linux【8】-软件管理-1-6-检验软体正确性

一、检验软体正确性

md5sum / sha1sum / sha256sum

md5sum 具体用法参见:https://qinqianshan.com/unix/linux/md5sum/

一般而言,每个系统里面的档案内容大概都不相同,例如你的系统中的/etc/passwd 这个登入资讯档与我的一定不一样,因为我们的使用者与密码、 Shell 及家目录等大概都不相同,所以由md5sum 这个档案指纹分析程式所自行计算出来的指纹表当然就不相同啰!

好了,那么如何应用这个东西呢?基本上,你必须要在你的Linux 系统上为你的这些重要的档案进行指纹资料库的建立 (好像在做户口调查!),将底下这些档案建立资料库:

/etc/passwd
/etc/shadow (假如你不让使用者改密码了)
/etc/group
/usr/bin/passwd
/sbin/rpcbind
/bin/login (这个也很容易被骇!)
/bin/ls
/bin/ps
/bin/top

这几个档案最容易被修改了!因为很多木马程式执行的时候,还是会有所谓的『执行序, PID』为了怕被root追查出来,所以他们都会修改这些检查排程的档案,如果你可以替这些档案建立指纹资料库(就是使用md5sum检查一次,将该档案指纹记录下来,然后常常以 shell script 的方式由程式自行来检查指纹表是否不同了!),那么对于档案系统会比较安全啦!

二、重点回顾

  1. 原始码其实大多是纯文字档,需要透过编译器的编译动作后,才能够制作出Linux 系统能够认识的可执行的binary file ;

  2. 开放原始码可以加速软体的更新速度,让软体效能更快、漏洞修补更即时;

  3. 在Linux 系统当中,最标准的C 语言编译器为gcc ;

  4. 在编译的过程当中,可以藉由其他软体提供的函式库来使用该软体的相关机制与功能;

  5. 为了简化编译过程当中的复杂的指令输入,可以藉由make 与makefile 规则定义,来简化程式的更新、编译与连结等动作;

  6. Tarball 为使用tar 与gzip/bzip2/xz 压缩功能所打包与压缩的,具有原始码的档案;

  7. 一般而言,要使用Tarball 管理Linux 系统上的软体,最好需要gcc, make, autoconfig, kernel source, kernel header 等前驱软体才行,所以在安装Linux 之初,最好就能够选择Software development 以及kernel development 之类的群组;

  8. 函式库有动态函式库与静态函式库,动态函式库在升级上具有较佳的优势。动态函式库的副档名为*.so 而静态则是*.a ;

  9. patch 的主要功能在更新原始码,所以更新原始码之后,还需要进行重新编译的动作才行;

  10. 可以利用ldconfig 与/etc/ld.so.conf /etc/ld.so.conf.d/*.conf 来制作动态函式库的连结与快取!

  11. 透过MD5/SHA1/SHA256 的编码可以判断下载的档案是否为原本厂商所释出的档案。

参考资料:

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn