一个曾被问到的问题是“为什么你要编写本文档?”我的回答是:在过去几年中,我注意到很多Linux和Unix的开发者看来不断地重复落入相同的安全陷阱中。审查者缓慢地找到这些问题,但要是能使代码一开始就不出问题则更好。我认为出问题的一部分原因在于没有一个简单明显的地方可以让开发者去获得如何避免已知陷阱的资料。这些资料是可以公开得到的,但经常是不容易找到、过时、不完全或有其它问题。绝大多数这样的资料并非特别针对Linux的,虽然Linux已经开始被广泛应用!这样就引出了答案:我编写本文是希望未来的Linux软件开发者可以不再重复过去的错误,以获得一个更加安全的Linux。我加上Unix,是由于确信程序可以在这些系统中移植通常是个明智的选择。你可以在 http://www.linuxsecurity.com/feature_stories/feature_story-6.html 上读到有关此问题更为广泛的讨论。
另一个可能被问到的相关问题是“为什么要编写自己的文档而不是简单地引用其它文档?”这有好几个答案:
很多这样的资料都很分散;把关键信息放在一个有条理的文档中会便于使用。
有些这样的信息不是为程序员而写的,而是写给管理员或用户的。
大多可得到的信息都强调可移植的结构(即可以在所有类UNIX的系统中使用的结构),而根本没有谈及Linux。出于可移植性的考虑,一般最好避免使用Linux独有的功能,但有时使用Linux独有的能力确实可以增强安全性。即使期望获得非Linux的可移植性,可能在Linux下还是希望能够支持Linux独有的功能。而且通过强调Linux,可以把对Linux感兴趣的人有所助益但对其它人无意义的信息包括进来。