|
最近升级日期:2009/09/15
重点回顾
- 原始码其实大多是纯文字档,需要透过编译器的编译动作后,才能够制作出 Linux 系统能够认识的可运行的 binary file ;
- 开放原始码可以加速软件的升级速度,让软件效能更快、漏洞修补更即时;
- 在 Linux 系统当中,最标准的 C 语言编译器为 gcc ;
- 在编译的过程当中,可以藉由其他软件提供的函式库来使用该软件的相关机制与功能;
- 为了简化编译过程当中的复杂的命令输入,可以藉由 make 与 makefile 守则定义,来简化程序的升级、编译与连结等动作;
- Tarball 为使用 tar 与 gzip/bzip2 压缩功能所打包与压缩的,具有原始码的文件;
- 一般而言,要使用 Tarball 管理 Linux 系统上的软件,最好需要 gcc, make, autoconfig, kernel source,
kernel header 等前驱软件才行,所以在安装 Linux 之初,最好就能够选择
Software development 以及 kernel development 之类的群组;
- 函式库有动态函式库与静态函式库,动态函式库在升级上具有较佳的优势。动态函式库的扩展名为 *.so 而静态则是 *.a ;
- patch 的主要功能在升级原始码,所以升级原始码之后,还需要进行重新编译的动作才行;
- 可以利用 ldconfig 与 /etc/ld.so.conf 来制作动态函式库的连结与缓存!
- 透过 MD5 的编码可以判断下载的文件是否为原本厂商所释出的文件。
本章习题
实作题部分:
情境模拟题部分:
- 请依照底下的方式来建置你的系统的重要文件指纹码,并每日比对此重要工作。
- 将 /etc/{passwd,shadow,group} 以及系统上面所有的 SUID/SGID 文件创建文件列表,该列表档名为『 important.file 』;
[root@www ~]# ls /etc/{passwd,shadow,group} > important.file
[root@www ~]# find /bin /sbin /usr/sbin /usr/bin -perm +6000 \
> >> important.file
|
- 透过这个档名列表,以名为 md5.checkfile.sh 的档名去创建指纹码,并将该指纹码文件『 finger1.file 』配置成为不可修改的属性;
[root@www ~]# vim md5.checkfile.sh
#!/bin/bash
for filename in $(cat important.file)
do
md5sum $filename >> finger1.file
done
[root@www ~]# sh md5.checkfile.sh
[root@www ~]# chattr +i finger1.file
|
- 透过相同的机制去创建后续的分析数据为 finger_new.file ,并将两者进行比对,若有问题则提供 email 给 root 查阅:
[root@www ~]# vim md5.checkfile.sh
#!/bin/bash
if [ "$1" == "new" ]; then
for filename in $(cat important.file)
do
md5sum $filename >> finger1.file
done
echo "New file finger1.file is created."
exit 0
fi
if [ ! -f finger1.file ]; then
echo "file: finger1.file NOT exist."
exit 1
fi
[ -f finger_new.file ] && rm finger_new.file
for filename in $(cat important.file)
do
md5sum $filename >> finger_new.file
done
testing=$(diff finger1.file finger_new.file)
if [ "$testing" != "" ]; then
diff finger1.file finger_new.file | mail -s 'finger trouble..' root
fi
[root@www ~]# vim /etc/crontab
30 2 * * * root cd /root; sh md5.checkfile.sh
|
如此一来,每天系统会主动的去分析你认为重要的文件之指纹数据,然后再加以分析,看看有没有被更动过。
不过,如果该变动是正常的,例如 CentOS 自动的升级时,那么你就得要删除 finger1.file ,
再重新建置一个新的指纹数据库才行!否则你会每天收到有问题信件的回报喔!
参考数据与延伸阅读
|
|