4.1;解压缩; 在接收套件後第一个步骤就是;unpacking。该套件是;tar;档案格式使用;gzip;压缩,所以首先将该档案移到;/usr/src;,然後输入:; tar;-xzvf;shadow-current.tar.gz 这将会;unpack;到一个目录:/usr/src/shadow-YYMMDD; 4.2;设定;config.h;档; 第一件事是你需要复制;Makefile;和;config.h;档:; cd;/usr/src/shadow-YYMMDD cp;Makefile.linux;Makefile cp;config.h.linux;config.h 然後你应该留意;config.h;档。;该档案包括某些设定选项的定义。如果你使用;建议;套件,我建议你在第一次设定关掉;group;shadow;support。; shadowed;group;passwords;预设值是开启的。;在;config.h;档关到这个设定,且改变;#define;SHADOWGRP;变成;#undef;SHADOWGRP。我建议您一开始关掉它们,然後如果你真的需要;group;passwords;和;group;administrators;时你在开启它们和重新编译。;如果你开启它,;你;必须;建立;/etc/gshadow;档。; 开启长密码的选项也不建议使用。; 不要;改变;#undef;AUTOSHADOW;的设定。; AUTOSHADOW;选项初始设计是用以让;shadow;可以像;function;一样执行。理论上听起来不错,但是没办法正确的运作。;如果你开启这个选项,且这个程式以;root;权限在执行,;它会像;root;权限执行一项呼叫;getpwnam();,然後变更;/etc/passwd;档;(有no-longer-shadowed;密码)。;这类程式包括;chfn;和;chsh。(如果;root;在呼叫;getpwnam();之前使用;chfn;和;chsh,使用者帐号将没有办法真实且有效交易。); 如果你要建立;libc,同样的警告也有效,它有个;SHADOW_COMPAT;作相同的事。;它;不应该被使用!如果你开始从你的;/etc/passwd;档撷取编码密码,这会是个问题。; 如果你正使用比;4.6.27;还高的;libc;版本,你将需要在;config.h;和;Makefile两个档做很多改变。在;config.h;档的编辑和改变:从:; #define;HAVE_BASENAME 到:; #undef;HAVE_BASENAME 然後在;Makefile;档的改变:; SOBJS;=;smain.o;env.o;entry.o;susetup.o;shell.o; sub.o;mail.o;motd.o;sulog.o;age.o;tz.o;hushed.o SSRCS;=;smain.c;env.c;entry.c;setup.c;shell.c; pwent.c;sub.c;mail.c;motd.c;sulog.c;shadow.c;age.c;pwpack.c;rad64.c; tz.c;hushed.c SOBJS;=;smain.o;env.o;entry.o;susetup.o;shell.o; sub.o;mail.o;motd.o;sulog.o;age.o;tz.o;hushed.o;basename.o SSRCS;=;smain.c;env.c;entry.c;setup.c;shell.c; pwent.c;sub.c;mail.c;motd.c;sulog.c;shadow.c;age.c;pwpack.c;rad64.c; tz.c;hushed.c;basename.c 这些包含在;basename.c;程式码的改变均需倍包括在;libc;4.6.27;内。; 4.3;备份原始程式; 在;shadow;suite;要更新时,制作程式备份将是一个很好的点子。在;Slackware;3.0;系统中,这些档案是:; /bin/su; /bin/login; /usr/bin/passwd; /usr/bin/newgrp; /usr/bin/chfn; /usr/bin/chsh; /usr/bin/id; 这;BETA;套件已经有个;储存;在;Makefile;的目的档,但是因为不同的版本通常将程式放在不同的地方,因此常被人评论。; 你应该备份你的;/etc/passwd;档,但是你要很小心地命名,不然如我你将它放在相同目录,你将无法重写;passwd;命令。; 4.4;执行;make; 你需要以;root;权限签入以执行安装程序.; 执行;make;来编译套件中的执行档:; make;all 你可能会看到警告语:;rcsid;defined;but;not;used.;这没关系,因为作者使用版本控制套件才会发生。; |
标签: linux