📄 53.html
字号:
<br>
然後在 Makefile 档的改变:<br>
<br>
SOBJS = smain.o env.o entry.o susetup.o shell.o <br>
sub.o mail.o motd.o sulog.o age.o tz.o hushed.o<br>
<br>
SSRCS = smain.c env.c entry.c setup.c shell.c <br>
pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c <br>
tz.c hushed.c<br>
<br>
SOBJS = smain.o env.o entry.o susetup.o shell.o <br>
sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o<br>
<br>
SSRCS = smain.c env.c entry.c setup.c shell.c <br>
pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c <br>
tz.c hushed.c basename.c<br>
<br>
这些包含在 basename.c 程式码的改变均需倍包括在 libc 4.6.27 内。<br>
<br>
<br>
4.3 备份原始程式<br>
在 shadow suite 要更新时,制作程式备份将是一个很好的点子。在 Slackware 3.0 系统中,这些档案是:<br>
<br>
<br>
/bin/su<br>
/bin/login<br>
/usr/bin/passwd<br>
/usr/bin/newgrp<br>
/usr/bin/chfn<br>
/usr/bin/chsh<br>
/usr/bin/id<br>
这 BETA 套件已经有个 储存 在 Makefile 的目的档,但是因为不同的版本通常将程式放在不同的地方,因此常被人评论。<br>
<br>
你应该备份你的 /etc/passwd 档,但是你要很小心地命名,不然如我你将它放在相同目录,你将无法重写 passwd 命令。<br>
<br>
<br>
4.4 执行 make<br>
你需要以 root 权限签入以执行安装程序.<br>
<br>
执行 make 来编译套件中的执行档:<br>
<br>
<br>
make all<br>
<br>
你可能会看到警告语: rcsid defined but not used. 这没关系,因为作者使用版本控制套件才会发生。<br>
5. 安装<br>
<br>
5.1 手边准备一个开机片<br>
如果真的发生严重错误,有个开机磁片之有用的。如果你要 boot/root 合并的安装,你可以参考 Bootdisk-HOWTO 以制作 root 开机之开机片。<br>
<br>
5.2 移除复制的 man pages<br>
你也应该将操作手册更新,即使你很厉害到足以不用备份安装 Shadow Suite,你仍然要将将旧的操作手册移除,因为新版的操作手册无法正常的覆盖旧版本。<br>
<br>
你可以使用一个组合: man -aW 命令 和 locate 命令 寻找需备移除的操作手册。在你执行 make install 前找出较旧版本比较容易。<br>
<br>
如果你使用 Slackware 3.0 版本,然後你要移除的操作手册是:<br>
<br>
/usr/man/man1/chfn.1.gz<br>
/usr/man/man1/chsh.1.gz<br>
/usr/man/man1/id.1.gz<br>
/usr/man/man1/login.1.gz<br>
/usr/man/man1/passwd.1.gz<br>
/usr/man/man1/su.1.gz<br>
/usr/man/man5/passwd.5.gz<br>
在 /var/man/cat[1-9] 次目录也有相同的名字需要被删除。<br>
<br>
<br>
5.3 执行 make install<br>
现在你已经准备要输入: (以 root 权限执行)<br>
<br>
make install<br>
<br>
这将安装最新和更新程式且修复档案许可权。它也会安装操作手册。<br>
<br>
这也将在安装时考虑将 Shadow Suite 包含档案放在正确的位置 /usr/include/shadow 。<br>
<br>
<br>
使用 BETA 套件,你需要手动复制 login.defs 这个档到 /etc 这个目录下,而且要确认只有 root 权限可以改变它。<br>
<br>
cp login.defs /etc<br>
chmod 700 /etc/login.defs<br>
<br>
这个档案是 签入 程式的 configuration file。 你应该检查跟确定这个档的改变状况。这是你决定哪个 tty 的 root 可以从哪里签入和设定其他安全方针的地方(像预设密码的到期日)。<br>
<br>
<br>
5.4 执行 pwconv<br>
接下来的步骤是执行 pwconv。 这也需以 root执行且最好在 /etc 目录下执行:<br>
<br>
cd /etc<br>
/usr/sbin/pwconv<br>
<br>
pwconv 撷取你的 /etc/passwd 档且删除某些栏位为了建立两个档案: /etc/npasswd 和 /etc/nshadow.<br>
<br>
一个 pwunconv 也提供你建立一个 /etc/passwd 和 /etc/shadow 组合的正常 /etc/passwd 档案。<br>
<br>
<br>
5.5 重新命名 npasswd 和 nshadow<br>
现在你已经执行 pwconv ,而且你已经建立 /etc/npasswd 和 /etc/nshadow 档案。这需要复制到 /etc/passwd 和 /etc/shadow 档。 我们也需要复制原始 /etc/passwd 档,而且确定只有 root 可以读它。我们将该档案放在 root 得根目录:<br>
<br>
<br>
cd /etc<br>
cp passwd ~passwd<br>
chmod 600 ~passwd<br>
mv npasswd passwd<br>
mv nshadow shadow<br>
<br>
你也应该确定档案的拥有者跟存取权限是正确的。 如果你将要使用 X-Windows , xlock 和 xdm 可能需要读取 shadow 档(但需不要写入该档)。<br>
<br>
有两个方法可以做。 你可以设定 xlock 的 suid 是 root (xdm 通常以 root 权限执行)。 或者你可以使 root 成为 shadow 的群组可以拥有 shadow 档,但是在作这之前,要确定你已经有个 shadow group (可以在 /etc/group 档看到)。不应改有任何使用者真的在 shadow group 。<br>
<br>
<br>
chown root.root passwd<br>
chown root.shadow shadow<br>
chmod 0644 passwd<br>
chmod 0640 shadow<br>
<br>
你的系统现在有 shadow 的密码档罗。 你现在 应该 重开一个终端机视窗和确认你可以签入(login)。<br>
<br>
请马上确实的作这件事!<br>
<br>
如过你不能,可能某些事情有错误罗! 为了要回到 to a non-shadowed 状态,请作下列步骤:<br>
<br>
cd /etc<br>
cp ~passwd passwd<br>
chmod 644 passwd<br>
<br>
你将重新储存这些档案到先前你储存它们的正确位置。<br>
6. upgrade或patch程式<br>
<br>
<br>
6. 其他你需要升级(upgrade)或补强(patch)程式<br>
即使 shadow suite 对大部分需要存取密码档的程式可以包含更新程式,但是仍有一些需要存取密码档的额外程式在系统中。<br>
<br>
如果你正执行 Debian 版本 (或者即使你不是),你可以找到 Debian 需要 rebuild 的原始码: ftp://ftp.debian.org/debian/stable/source/<br>
<br>
这节剩馀的部分在讨论更新 adduser, wu_ftpd, ftpd, pop3d, xlock,xdm 和 sudo 程式以便於让这些程式支援 shadow suite。<br>
<br>
请看 Adding Shadow Support to a C program 这节,主要是在讨论如何将 shadow 支援放到其他需要程式(虽然这些程式需要以 SUID root 执行或 SGID shadow 需正确存取 shadow 档)。<br>
<br>
6.1 Slackware adduser 程式<br>
Slackware 版本包含一个新增使用者的交互程式叫做 /sbin/adduser。该程式的 shadow 版本可以在 ftp://sunsite.unc.edu/pub/linux/system/ Admin/accounts/adduser.shadow-1.4.tar.gz找到。<br>
<br>
我很鼓励你使用 Shadow Suite 供应的程式(例如useradd, usermod, 和 userdel) 来取代 slackware 的adduser 程式。 它们只需花一点时间学习,但是它将值得的,因为你可以看到更多控制和在正确展现锁住 /etc/passwd 和 /etc/shadow 的档案(adduser 就没有办法罗)。<br>
<br>
参考 Putting the Shadow Suite to use 该节得到更多相关资讯。<br>
<br>
但是如果你已经拥有罗,接下来是你要做的部分:<br>
<br>
tar -xzvf adduser.shadow-1.4.tar.gz<br>
cd adduser<br>
make clean<br>
make adduser<br>
chmod 700 adduser<br>
cp adduser /sbin<br>
<br>
6.2 wu_ftpd Server<br>
大部分的 linux 系统都有 wu_ftpd server。 如果你的版本没有附带 shadow 安装,那麽你的 wu_ftpd 就没有办法对 shadow 编译。 wu_ftpd 是从 inetd/tcpd 开始且以 root 权限执行的程式。 如果你正在跑一个旧版的 wu_ftpd daemon, 无论如何你将要更新它因为较旧版本有 bug 将危及 root 权限。(参考 Linux security home page 得到更多相关资讯)。<br>
<br>
<br>
幸运的是你只需要取的有嵌入 shaow 的原始码和重新编译就可以罗!<br>
<br>
如果你不是正在执行 ELF 系统, wu_ftp server 可以从 Sunsite 网址 wu-ftp-2.4-fixed.tar.gz 找到。<br>
<br>
当你获得这个 server,把它放在 /usr/src目录,然後输入:<br>
<br>
<br>
cd /usr/src<br>
tar -xzvf wu-ftpd-2.4-fixed.tar.gz<br>
cd wu-ftpd-2.4-fixed<br>
cp ./src/config/config.lnx.shadow ./src/config/config.lnx<br>
<br>
然後编辑 ./src/makefiles/Makefile.lnx,和改变<br>
<br>
LIBES = -lbsd -support<br>
<br>
这一行到:<br>
LIBES = -lbsd -support -lshadow<br>
<br>
现在你已经准备好执行 script 建立跟安装:<br>
<br>
<br>
cd /usr/src/wu-ftpd-2.4-fixed<br>
/usr/src/wu-ftp-2.4.fixed/build lnx<br>
cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old<br>
cp ./bin/ftpd /usr/sbin/wu.ftpd<br>
<br>
这是用在 linux shadow configuration file、编译和安装 server。<br>
<br>
在我的 Slackware 2.3 系统,我也需要在执行前作下列步骤:<br>
<br>
build:<br>
<br>
cd /usr/include/netinet<br>
ln -s in_systm.h in_system.h<br>
cd -<br>
<br>
在 ELF 系统下会有编译问题的报告,但是下一版的 Beta 版则可以正确的执行。可以从 wu-ftp-2.4.2-beta-10.tar.gz 找到。<br>
<br>
当你获得这个 server,把它放在 /usr/src目录,然後输入:<br>
<br>
cd /usr/src<br>
tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz<br>
cd wu-ftpd-beta-9<br>
cd ./src/config<br>
<br>
然後编辑 config.lnx,和改变:<br>
<br>
#undef SHADOW.PASSWORD<br>
<br>
这一行到:<br>
#define SHADOW.PASSWORD<br>
<br>
然後,<br>
cd ../Makefiles<br>
<br>
且编辑 Makefile.lnx 档和改变<br>
<br>
LIBES = -lsupport -lbsd # -lshadow<br>
<br>
这一行到:<br>
LIBES = -lsupport -lbsd -lshadow<br>
<br>
然後建立(build)和安装(install):<br>
cd ..<br>
build lnx<br>
cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old<br>
cp ./bin/ftpd /usr/sbin/wu.ftpd<br>
<br>
注:你应该检查你的 /etc/inetd.conf 档来确认你的 wu.ftpd server 是不是真的活著。有些版本可能将 server daemons 放在不同的地方或用不同的名字表示。<br>
<br>
<br>
6.3 标准 ftpd<br>
如果你正在执行标准的 ftpd server,我将建议你更新 wu_ftpd server。离开上述的 bug ,系统会比较安全。<br>
<br>
如果你坚持在标准模式,或者你需要 NIS 支援,在 Sunsite ftpd-shadow-nis.tgz 有参考资料。<br>
<br>
<br>
6.4 pop3d (Post Office Protocol 3)<br>
如果你需要支援第三版 Post Office Protocol (POP3),你将需要重新编译 pop3d 程式。 pop3d 可以透过 inetd/tcpd 以 root 权限正常的执行。<br>
<br>
从 Sunsite 有两个版本可以获得: pop3d-1.00.4.linux.shadow.tar.gz 和 pop3d+shadow+elf.tar.gz<br>
<br>
这两个都很简单可以安装。<br>
<br>
<br>
6.5 xlock<br>
<br>
如果你安装 shadow suite,然後执行 X Windows System 和 lock 萤幕没以更新你的 xlock 档, 你将必须使用 CNTL-ALT-Fx 去切换另一个 tty,签入(login)和杀掉(kill) xlock process (或使用 CNTL-ALT-BS 杀掉 X server)。很幸运的这也很容易可以更新你的 xlock 程式。<br>
<br>
如果你正执行 XFree86 Versions 3.x.x,且正正确使用 xlockmore (是一个很棒的萤幕保护程式). 这个套件支援 shadow,只要重新编译即可。如果你有任何较老的 xlock 版本,我建议你更新下列版本:<br>
<br>
xlockmore-3.5.tgz 可以从 ftp://sunsite.unc.edu/pub/linux/X11/xutils/screensavers/xlockmore-3.7.tgz 网站获得。<br>
<br>
基本上这是你所要的。<br>
<br>
撷取 xlockmore-3.7.tgz ,并将它放在 /usr/src 目录并解压缩:<br>
<br>
tar -xzvf xlockmore-3.7.tgz<br>
<br>
编辑这个档: /usr/X11R6/lib/X11/config/linux.cf, 和改变<br>
<br>
#define HasShadowPasswd NO<br>
<br>
这一行到:<br>
<br>
#define HasShadowPasswd YES<br>
<br>
然後建立可执行档:<br>
<br>
cd /usr/src/xlockmore<br>
xmkmf<br>
make depend<br>
make<br>
<br>
然後搬移所以档案到正确目录且更新档案拥有者及执行权限:<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -