The Linux Bootdisk HOWTO 中译版( 九 )


请;copy;你所需要的指定;loader(s);到你所建立的;root;filesystem; 。针对所包括的二进位档,函式库与;loaders;应该被;仔细地检查; 。如果;kernel;不能载入所需的函式库,那麽;kernel;就会在没有错误讯息的情况下停止运作 。;


4.4;对;PAM;与;NSS;的提供;--;Providing;for;PAM;and;NSS;

你的系统可能会需要动态地载入未被;ldd;所见的函式库 。如果你没有提供函式库给这些项目,那麽你会在登录;(log;in);或使用你的;bootdisk;时遭遇到困难 。;


PAM;(Pluggable;Authentication;Modules)

如果你的系统使用;PAM;(Pluggable;Authentication;Modules);,那麽你必须在你的;bootdisk上为;PAM;做一些预备 。简而言之,;PAM;是一种复杂精密的模组化方法,针对使用者认证以及控制使用者对服务的存取 。一个决定你的系统是否使用;PAM;的简单方法,是对你的;login;可执行档执行;ldd;;如果输出包括;libpam.so;,你就需要;PAM; 。;

幸运地,安全性通常并非;bootdisk;所关心的议题,因为任何对机器有实际存取权的人,通常能做任何他们无论如何想做的事 。因此,你可以有效地关闭;PAM;,只要在你的;root;filesystem;造出一个简单的;/etc/pam.conf;档,这个档看起来像这样:;



--------------------------------------------------------------------------------

OTHER;;;auth;;;;;;;optional;;;;;/lib/security/pam_permit.so
OTHER;;;account;;;;optional;;;;;/lib/security/pam_permit.so
OTHER;;;password;;;optional;;;;;/lib/security/pam_permit.so
OTHER;;;session;;;;optional;;;;;/lib/security/pam_permit.so


--------------------------------------------------------------------------------

请记得也;copy;/lib/security/pam_permit.so;这个档到你的;root;filesystem; 。这个函式库只有大约;8K;,因此它只占用极小量的;overhead; 。;

请记得这个组态设定允许任何人对这台机器上的档案以及服务有完整的存取权 。如果你因某种理由而在乎你;bootdisk;的安全性,那麽你就必须;copy;一些或是全部你硬碟的;PAM;setup;到你的;root;filesystem; 。请确定曾仔细地读过;PAM;文件,并且;copy;任何在;/lib/security;中所需要的函式库到你的;root;filesystem;上 。;

你同时必须包含;/lib/libpam.so;到你的;bootdisk;上 。但是你已知这件事,因为你已对;/bin/login;执行过;ldd;,这动作显示了其相依性 。;


NSS;(Name;Service;Switch)

如果你正使用;glibc;(aka;libc6);,你就必须为名称服务;(name;switch);进行预备,否则你会无法;log;in; 。;/etc/nsswitch.conf;这个档案控制资料库对各式服务之搜寻;(lookups); 。如果你并不打算从网路上存取服务;(比如说:;DNS或;NIS;搜寻),那麽你只需要准备一个简单的;nsswitch.conf;档,这个档案看起来像这样:;



--------------------------------------------------------------------------------

passwd:;;;;;files
shadow:;;;;;files
group:;;;;;;files
hosts:;;;;;;files
services:;;;files
networks:;;;files
protocols:;;files
rpc:files
ethers:;;;;;files
netmasks:;;;files
bootparams:;files
automount:;;files
aliases:;;;;files
netgroup:;;;files
publickey:;;files


--------------------------------------------------------------------------------

这样就指定每一项服务只被;local;files;提供 。你同时需要包括;/lib/libnss_files.so.X;,在此;X;是;1;的话是指;glibc;2.0;,而;2;的话是指;glibc;2.1; 。这个函式库将被以动态方式载入以处理档案搜寻 。;

如果你打算从你的;bootdisk;存取网路,那麽你会想要制作一个更精巧复杂的;nsswitch.conf;档 。细节请参考;nsswitch;man;page 。最後,请记得你必须为你所指定的每一项;服务;(service);,把;/lib/libnss_service.so.1;档放入;bootdisk;中 。;


4.5;模组;--;Modules;

推荐阅读