在接收套件后第一个步骤就是 unpacking。该套件是 tar 文档格式使用 gzip 压缩
,所以首先将该文档移到 /usr/src
,然后输入:
tar -xzvf shadow-current.tar.gz
这将会 unpack 到一个目录:/usr/src/shadow-YYMMDD
第一件事是你需要复制 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
内。
在 shadow suite 要更新时,制作程序备份将是一个很好的点子。在 Slackware 3.0 系统中, 这些文档是:
这 BETA 套件已经有个 储存 在 Makefile 的目的档,但是 因为不同的版本通常将程序放在不同的地方,因此常被人评论。
你应该备份你的 /etc/passwd
档,但是你要很小心地命名,不然如我你将它放在
相同目录,你将无法重写 passwd
命令。
你需要以 root 权限签入以执行安装程序.
执行 make 来编译套件中的执行档:
make all
你可能会看到警告语: rcsid defined but not used
. 这没关系,
因为作者使用版本控制套件才会发生。