电脑技术学习

Linux Shadow-Password-HOWTO - 6. upgrade或patc

dn001
6.;其他你需要升级(upgrade)或补强(patch)程式
即使;shadow;suite;对大部分需要存取密码档的程式可以包含更新程式,但是仍有一些需要存取密码档的额外程式在系统中。;

如果你正执行;Debian;版本;(或者即使你不是),你可以找到;Debian;需要;rebuild;的原始码:;ftp://ftp.debian.org/debian/stable/source/;

这节剩馀的部分在讨论更新;adduser,;wu_ftpd,;ftpd,;pop3d,;xlock,xdm;和;sudo;程式以便於让这些程式支援;shadow;suite。;

请看;Adding;Shadow;Support;to;a;C;program;这节,主要是在讨论如何将;shadow;支援放到其他需要程式(虽然这些程式需要以;SUID;root;执行或;SGID;shadow;需正确存取;shadow;档)。;


6.1;Slackware;adduser;程式;
Slackware;版本包含一个新增使用者的交互程式叫做;/sbin/adduser。该程式的;shadow;版本可以在;ftp://sunsite.unc.edu/pub/Linux/system/;Admin/accounts/adduser.shadow-1.4.tar.gz找到。;

我很鼓励你使用;Shadow;Suite;供应的程式(例如useradd,;usermod,;和;userdel);来取代;slackware;的adduser;程式。;它们只需花一点时间学习,但是它将值得的,因为你可以看到更多控制和在正确展现锁住;/etc/passwd;和;/etc/shadow;的档案(adduser;就没有办法罗)。;


参考;Putting;the;Shadow;Suite;to;use;该节得到更多相关资讯。;


但是如果你已经拥有罗,接下来是你要做的部分:;


tar;-xzvf;adduser.shadow-1.4.tar.gz
cd;adduser
make;clean
make;adduser
chmod;700;adduser
cp;adduser;/sbin


6.2;wu_ftpd;Server;
大部分的;Linux;系统都有;wu_ftpd;server。;如果你的版本没有附带;shadow;安装,那麽你的;wu_ftpd;就没有办法对;shadow;编译。;wu_ftpd;是从;inetd/tcpd;开始且以;root;权限执行的程式。;如果你正在跑一个旧版的;wu_ftpd;daemon,;无论如何你将要更新它因为较旧版本有;bug;将危及;root;权限。(参考;Linux;security;home;page;得到更多相关资讯)。;


幸运的是你只需要取的有嵌入;shaow;的原始码和重新编译就可以罗!;

如果你不是正在执行;ELF;系统,;wu_ftp;server;可以从;Sunsite;网址;wu-ftp-2.4-fixed.tar.gz;找到。;

当你获得这个;server,把它放在;/usr/src目录,然後输入:;


cd;/usr/src
tar;-xzvf;wu-ftpd-2.4-fixed.tar.gz
cd;wu-ftpd-2.4-fixed
cp;./src/config/config.lnx.shadow;./src/config/config.lnx

然後编辑;./src/makefiles/Makefile.lnx,和改变;

LIBES;;;;=;-lbsd;-support

这一行到:;
LIBES;;;;=;-lbsd;-support;-lshadow

现在你已经准备好执行;script;建立跟安装:;


cd;/usr/src/wu-ftpd-2.4-fixed
/usr/src/wu-ftp-2.4.fixed/build;lnx
cp;/usr/sbin/wu.ftpd;/usr/sbin/wu.ftpd.old
cp;./bin/ftpd;/usr/sbin/wu.ftpd

这是用在;Linux;shadow;configuration;file、编译和安装;server。;

在我的;Slackware;2.3;系统,我也需要在执行前作下列步骤:;

build:;

cd;/usr/include/netinet
ln;-s;in_systm.h;in_system.h
cd;-

在;ELF;系统下会有编译问题的报告,但是下一版的;Beta;版则可以正确的执行。可以从;wu-ftp-2.4.2-beta-10.tar.gz;找到。;

当你获得这个;server,把它放在;/usr/src目录,然後输入:;

cd;/usr/src
tar;-xzvf;wu-ftpd-2.4.2-beta-9.tar.gz
cd;wu-ftpd-beta-9
cd;./src/config

然後编辑;config.lnx,和改变:;

#undef;SHADOW.PASSWORD

这一行到:;
#define;SHADOW.PASSWORD

然後,;
cd;../Makefiles

且编辑;Makefile.lnx;档和改变;

LIBES;=;-lsupport;-lbsd;#;-lshadow

这一行到:;
LIBES;=;-lsupport;-lbsd;-lshadow

然後建立(build)和安装(install):;
cd;..
build;lnx
cp;/usr/sbin/wu.ftpd;/usr/sbin/wu.ftpd.old
cp;./bin/ftpd;/usr/sbin/wu.ftpd

注:你应该检查你的;/etc/inetd.conf;档来确认你的;wu.ftpd;server;是不是真的活著。有些版本可能将;server;daemons;放在不同的地方或用不同的名字表示。;


6.3;标准;ftpd;
如果你正在执行标准的;ftpd;server,我将建议你更新;wu_ftpd;server。离开上述的;bug;,系统会比较安全。;

如果你坚持在标准模式,或者你需要;NIS;支援,在;Sunsite;ftpd-shadow-nis.tgz;有参考资料。;


6.4;pop3d;(Post;Office;Protocol;3);
如果你需要支援第三版;Post;Office;Protocol;(POP3),你将需要重新编译;pop3d;程式。;pop3d;可以透过;inetd/tcpd;以;root;权限正常的执行。;

从;Sunsite;有两个版本可以获得:;pop3d-1.00.4.linux.shadow.tar.gz;和;pop3d+shadow+elf.tar.gz

这两个都很简单可以安装。;


6.5;xlock;

如果你安装;shadow;suite,然後执行;X;Windows;System;和;lock;萤幕没以更新你的;xlock;档,;你将必须使用;CNTL-ALT-Fx;去切换另一个;tty,签入(login)和杀掉(kill);xlock;process;(或使用;CNTL-ALT-BS;杀掉;X;server)。很幸运的这也很容易可以更新你的;xlock;程式。;

如果你正执行;XFree86;Versions;3.x.x,且正正确使用;xlockmore;(是一个很棒的萤幕保护程式).;这个套件支援;shadow,只要重新编译即可。如果你有任何较老的;xlock;版本,我建议你更新下列版本:;

xlockmore-3.5.tgz;可以从;ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz;网站获得。;

基本上这是你所要的。;

撷取;xlockmore-3.7.tgz;,并将它放在;/usr/src;目录并解压缩:;

tar;-xzvf;xlockmore-3.7.tgz

编辑这个档:;/usr/X11R6/lib/X11/config/linux.cf,;和改变;

#define;HasShadowPasswd;;;;NO

这一行到:

#define;HasShadowPasswd;;;;YES

然後建立可执行档:;

cd;/usr/src/xlockmore
xmkmf
make;depend
make

然後搬移所以档案到正确目录且更新档案拥有者及执行权限:;


cp;xlock;/usr/X11R6/bin/
cp;XLock;/var/X11R6/lib/app-defaults/
chown;root.shadow;/usr/X11R6/bin/xlock
chmod;2755;/usr/X11R6/bin/xlock
chown;root.shadow;/etc/shadow
chmod;640;/etc/shadow


你的;xlock;将可以正确的运作罗!;


6.6;xdm;
xdm;是一个可以表示在;X-Windows;签入画面的程式。某些系统开始;xdm;当系统被告知道一个特定的执行水准(参考;/etc/inittab)。;


伴随著;Shadow;Suite;安装,;xdm;需要被更新。很幸运的这也很容易可以更新你的;xdm;程式。;



xdm.tar.gz;可以从下列网址获得:;ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz

撷取;xdm.tar.gz;档并将它放在;/usr/src目录然後解压缩:;

tar;-xzvf;xdm.tar.gz

编辑这个档:;/usr/X11R6/lib/X11/config/linux.cf,且改变;

#define;HasShadowPasswd;;;;NO

这一行到:

#define;HasShadowPasswd;;;;YES

然後建立可执行档:;

cd;/usr/src/xdm
xmkmf
make;depend
make

然後搬移所有档案正确目录:;

cp;xdm;/usr/X11R6/bin/

xdm;以;root;权限在执行,所以你不需要改变档案存取权限。;



6.7;sudo;
sudo;程式允许系统管理员让使用者可以以;root;权限正常的执行程式。这是非常方便的因为它可以限制管理者执行;root;帐号本身权限,还可以允许使用者作像;mounte;drives;的事情。;

sudo;需要读取密码因为在执行时需确认使用者密码。;sudo;已经执行;SUID;root,所以存取;/etc/shadow;党不是问题。;

sudo;支援;shadow;suite;可在下列网址取得:;ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz

警告:当你安装;sudo;你的;/etc/sudoers;档将取代预设值,所以你需要备份原始程式。如果你有家任何设定在预设程式,你可能要编辑;Makefile;且移除复制该档到;/etc;的这行。;


该套件已经对;shadow;进行设定,所以只要重新编译该套件即可;(把它放在;/usr/src;目录):;

cd;/usr/src
tar;-xzvf;sudo-1.2-shadow.tgz
cd;sudo-1.2-shadow
make;all
make;install


6.8;imapd;(E-Mail;[pine;package]);
imapd;是一个像;pop3d;的;email;server。;imapd;随著;Pine;E-mail;套件发生。;其操作手册在介绍该套件时即包含;shadow;支援。然而,我发现这不全然正确。;再加上在编译时加上;libshadow.a;函式库和该套件结合;build;script;/;Makefile;是非常不容易的。所以对;imapd;加入;shadow;支援是不太可能的。;


如果有任何答案,可以;Email;给我,我会将该解答放到这里。;


6.9;pppd;(Point-to-Point;Protocol;Server);
pppd;server;可以使用几种权限设定:;Password;Authentication;Protocol;(PAP);和;Cryptographic;Handshake;Authentication;Protocol;(CHAP)。;pppd;server;从;/etc/ppp/chap-secrets;和/或;/etc/ppp/pap-secrets;档读取密码字串。如果你正使用预设;pppd;的执行,就没有必要再重新安装;pppd;。;

pppd;以允许你使用;login;参数。;如果;login;选项被选取,;pppd;将使用;/etc/passwd;档的帐号密码给;PAP.;当然在不久密码档会是;shadowedm。pppd-1.2.1d;档已经加入对;shadow;的支援。;


下一节加入支援;shadow;的□例是针对;pppd-1.2.1d;(一个较老版本的;pppd).;

pppd-2.2.0;版就已经包括;shadow;支援罗。;

标签: linux